0

次の構成を持つスタンドアロンの spring/rabbit アプリがあります。

<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" reply-timeout="1000"/>

<rabbit:admin connection-factory="connectionFactory" />

<beans profile="cloud">
    <cloud:rabbit-connection-factory id="connectionFactory"/>
</beans>

<beans profile="default">
    <rabbit:connection-factory id="connectionFactory"/>
</beans>

アプリに正しくバインドされたウサギのサービスがあります。

以下をファイルに直接入れると、問題なく動作します。

<cloud:rabbit-connection-factory id="connectionFactory"/>

プロファイルを使用しようとすると、接続が拒否されます。プロファイルが機能しない理由について何か考えはありますか? すべてのドキュメントは、プロファイルを自動的にアクティブにする必要があることを示唆しているようです。

4

1 に答える 1

4

Springの自動再構成のサポートは、アプリケーションがアプリケーションタイプ「Spring」でプッシュされた場合にのみ機能します。スタンドアロンアプリ(またはJavaWeb、またはSpring以外のもの)としてプッシュされた場合、Springの自動再構成は行われません。

スタンドアロンアプリでクラウドプロファイルをアクティブ化するだけの-Dspring.profiles.active="cloud"場合は、アプリをCFにプッシュするときに指定するコマンドラインに追加できます。

より複雑な構成を行う必要がある場合は、SpringJava構成CloudFoundryJavaランタイムAPIを使用することもできます。@BeanSpring@Configurationクラスのメソッドでは、クラスのメソッド(CF Runtime APIに含まれている)を呼び出して、isCloudFoundry()アプリCloudEnvironmentがCloudFoundryで実行されているかどうかを検出できます。これに基づいて、RabbitMQBeanを適切にインスタンス化できます。

于 2012-11-29T18:48:34.413 に答える