2016-10-24 5 views
0

私の組み込みactivemqインスタンスのデータフォルダを変更する必要があります。私はspring-boot-starter-activemqを使用して、$baseDirフォルダにactivemq-dataというフォルダを作成します。コマンドmvn cleanでフォルダを削除できるように、targetフォルダに移動したいと思います。Springブートでactivemq-dataフォルダの場所を変更する方法

私は次の記事のみを見つけましたが、システムプロパティactivemq.store.dirを統合テストに渡すと、機能しません。 http://activemq.apache.org/how-do-i-change-the-message-store-directory-for-an-embedded-broker.html

ことが可能である場合、私はそれがapplication.propertiesファイルに設定を見つけることを試みたが、それは可能ではないようです。 https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQProperties.java

答えて

0

春ブーツActiveMQのための埋め込みモードを自動設定していません。すべてがactiveMQレベルで行われるので、ドキュメントを参照する必要があります。すでに述べたように、activemq.store.dirシステムプロパティを設定する必要があります。

統合テストで通常のSpringブートプロパティを設定しようとすると、これはシステムプロパティではないため動作しません。また、@Beforeにシステムプロパティを設定しようとすると、コンテキストがすでにs.tartedになっているので、設定が遅すぎる

なぜ統合テストに永続ブローカが必要なのかわからない私には匂いがする。どうやって、春のブーツをするのはどうですか?ブローカーURLを設定しないと、vm://localhost?broker.persistent=falseとなり、ディレクトリがまったく作成されません。

+0

はい、非永続的なブローカーは、統合テストのために良いだろうが、1つの問題があります。 – mbasovni

+0

はい、非永続ブローカーは統合テストには適していますが、問題が1つあります。私は、ログに次のメッセージを見つけることができます: 1. ActiveMQのは 2.キャメル開始され 3のActiveMQが停止している私のキューにメッセージを送信 4. ActiveMQのは 5. JMSクライアントがメッセージ 6のActiveMQを受け取る開始されています停止しました コンシューマActiveMQが停止していない場合。私はラクダメッセージを呼び出す前にメッセージを非同期的に受け取ることができます。 – mbasovni

関連する問題