このニーズは少し複雑に聞こえるかもしれませんが、そうであれば、私は実装のベストプラクティスに関する提案を公開しています。私の問題は次のとおりです。私はEAR内に含まれているWAR webappを持っています。すべてがメイズ化されています。私のwebapp内から、耳と戦争のアーティファクトIDとバージョン番号を表示しようとしています。戦争中のクラスが耳からMETA-INFにアクセスする方法はありますか?
戦争はかなり簡単に処理できます。私は単純なmavenフィルタリングを使って、構築中のwarに必要なartifactId/versionIdを注入することができます。しかし、耳はより複雑です。
私は、その情報を含んでいる耳の中で見ることができるMETA-INF/maven /// pom.propertiesがあると知っていますが、アクセスすることはできません。
私は(jspページ内から)成功せずに(すべて/をつけずに)試しました。すべての呼び出しはnullを返します:
getClass().getClassLoader().getResource("/META-INF/maven/<group>/<artifact>/pom.properties");
getClass().getClassLoader().getResourceAsStream("/META-INF/maven/<group>/<artifact>/pom.properties");
これはクラスローダーを使用しても実行可能ですか?それとも、クラスローダーの設定に依存していますか?この情報を得るためのより良いアプローチはありますか?
私は現在JBossでテストを行っていますが、最終的な展開はWebSphere上にあります。しかし、理想的には、私はサーバーに依存しないソリューションを希望しています。
ありがとうございます!
エリック
私はそれが原因で耳、EJBおよび戦争は普遍的、予測可能とJava EE全体のスキームに従って相互にリンクされている必要はない異なるクラスローダーを、持っているという事実のために可能だとは思わない
チップをありがとう。これはかなりうまくいくはずですが、私は注射が適切に機能するようには思えません。私はJBoss 7.0.2で耳を動かしていますが、env-entryはjndiツリーに追加されていないようです。どのサーバーでこのコードを正常に実行しましたか? –
最後のコメントを無視してください。 configファイルに問題がありました。すべて今はうまく動作します。ありがとう! –
ご歓迎ありがとうございました。 – Osw