我們的團隊將應用程序從JBoss 4.2遷移到Weblogic 10.3.4。getContextClassLoader()。getResource(「」)在Weblogic上返回null,同時在JBoss上返回路徑值
應用程序中有一些邏輯需要知道ear文件名。爲此,使用以下代碼:
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
是的,我知道這是糟糕的風格編碼,但這是遺留代碼,可能返回空值可能是其他問題的跡象,不立即顯示。無論如何,謝謝你的指導。 – nahab 2012-01-12 19:45:29
@nahab:啊,是的,應用程序遷移的喜悅....從來沒有像它應該是光滑的:) – skaffman 2012-01-12 19:46:49