4

Spring Cloud を使用して、Cloud Foundry アプリから汎用 REST サービスを利用しようとしています。

このサービスは、次のように Spring Boot を使用して作成されます。

package com.something;

@RestController
public class DemoServiceController {
    @RequestMapping("/sayHi")
    public String sayHi() {
        return "Hello!";
    }
}

http://www.example.com/srv/demo/sayHiこれは問題なく動作します。「Hello!」にアクセスして取得できます。戻る。

次に、CF-CLI を使用してユーザー提供のサービス インスタンスを作成し、アプリにバインドしました。バインドされたサービスが に表示されVCAP_SERVICESます。

cf cups my-demo-service -p '{"url":"http://www.example.com/srv/demo/"}'
cf bs my-demo-app my-demo-service

次に、ここで説明したように、この Bean をアプリの Spring 構成に追加connector-typeし、元のコントローラーに設定しました (参照もしています)。

<cloud:service id="myDemoService"
               service-name="my-demo-service"
               connector-type="com.something.DemoServiceController"
               />

"myDemoService"アプリに自動配線すると、

@Autowired
private DemoController myDemoService;

エラーが発生します:

指定されたタイプのサービスが見つかりませんでした。

spring-cloud-spring-service-connectorと を含む、必要なすべての依存関係を含めるようにしましたspring-cloud-cloudfoundry-connector

ここで何がうまくいかないのですか?間違った Bean パラメーターを指定していますか? どんな助けでも大歓迎です。

4

1 に答える 1

5

サポートされている各サービスは既知のタイプ (MySQL、Postgres、Redis、MongoDB、RabbitMQ など) である必要があるため、Spring Cloud Connectors はこのサービスをどうするかわかりません。を Controller クラスに設定してもconnector-type、希望どおりにはなりません。

カスタム コネクタ拡張機能を作成する必要があります。これを行うプロジェクトの例を次に示します: https://github.com/cf-platform-eng/spring-boot-cities

于 2015-02-17T22:58:39.150 に答える