私たちのチームは、JBoss 4.2からWeblogic 10.3.4へのアプリケーションの移行を行います。getContextClassLoader()。getResource( "")JBoss上の戻りパス値中にWeblogicでnullを返します
耳のファイル名を知る必要があるアプリケーションにはいくつかのロジックがあります。この目的のために、以下のコードを使用してください:
URL url = Thread.currentThread().getContextClassLoader().getResource("");
このコードは、Springの初期化中にデプロイメントフェーズで実行されます。
JBossでは、この場合はうまく動作しますが、Weblogic getResource("")
返信null
になります。
これは私の質問はなぜWeblogicでは動作しないのですか?
Additionaly、私はThread.currentThread().getContextClassLoader().getResource("")
の値を返し、これは、WebLogic上で動作するコードのわずか数行の小さななtest.jspページを作成しました。だから私は、この状況をより明確に示すために小さなテーブルを作った:
+----------+-------------+------------------------------+ | | on JSP page | during spring initialization | +----------+-------------+------------------------------+ | JBoss | works | works | | Weblogic | works | returns null | +----------+-------------+------------------------------+
アプリケーションの構造は次にあります。 getResource("")
コードがmy.jar
の内側に配置されています。JBossで
my.ear
|
+-my.war
|
+-WEB-INF
| |
| +-lib
| |
| +-my.jar
| +-org.springframework.aop-3.0.5.RELEASE.jar
| +-org.springframework.beans-3.0.5.RELEASE.jar
| +-org.springframework.context.support-3.0.5.RELEASE.jar
| +-org.springframework.context-3.0.5.RELEASE.jar
| +-org.springframework.core-3.0.5.RELEASE.jar
| +-other jars
|
+-test.jsp
+-jsp pages
はい、これはスタイルのコーディングが悪いことを知っていますが、これはレガシーコードであり、おそらくnullを返すことはimmediatly上に表示されない他の問題の兆候となります。とにかく、ありがとう。 – nahab
@nahab:ああ、アプリケーションサーバーの移行の喜び....決して滑らかではありません:) – skaffman