埋め込まれたJCAリソースアダプタを参照する方法
質問
のJBossに基づいて、当社の現在のJ2EEプロジェクトのために、我々は、第三者によるRARファイルとして提供されたメッセージ駆動型Beanを使用して、リモートシステムとJCAリソースアダプタとのインターフェースにする必要があります。私は、私たちのJBossサーバーへのEARファイルとしてプロジェクト全体をパッケージ化して展開したいと思います。最も顕著なのは、RARファイルをグローバルに展開されたEARファイル内に埋め込まれていないする必要があります。
このすべては、これまで正常に動作しているが、私はRARファイルが参照されている方法には特に満足していません。例えばMDBとともにパッケージのjboss.xmlは、現在、次のようになります:
<jboss>
<enterprise-beans>
<message-driven>
<ejb-name>testBean1</ejb-name>
<resource-adapter-name>test1.ear#thirdparty-1.0.rar</resource-adapter-name>
</message-driven>
</enterprise-beans>
</jboss>
これは一般的に正常に動作している間にEARファイルは、「test2.ear」に変更されたときに、それが解除されます。含むアーカイブの名前をハードコーディングせずに埋め込まれたRARファイルを参照する方法はありますか?
の編集のほぼ2ヵ月後、私はまだこの質問に本当の答えを見つけることができます。周りに尋ねる、私が得たすべては、これら二つの有益な提案だった:「使用Mavenのプロパティとフィルタリング」、および「EAR内RARを含めないでください。」私は強く、現在のJBossに適切にこれを処理する方法がないと思われます。だから私はそれをあげるとちょうど私がここに来た唯一の答えを受け入れます。
解決
あなたが構築するためにMavenを使用していますか?もしそうなら、あなたはその名のearファイルをMavenのプロパティを設定し、プレースホルダを使用してリソースファイル内の値を設定するためにその名前を使用することができます。
例えば XXX
その後、使用
$ {ear.name}の.ear#1サードパーティ-1.0.rar
ちょうどあなたが、プレースホルダを持つことになり、リソースを設定してください。
このような何かます:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>