我已經打包爲後續的應用程序:Spring配置文件裝載不工作的WebSphere 7
+EAR
+WAR
+ejb.jar
+lib
+core.jar
+plugin1.jar
+plugin2.jar
...
每個「pluginX.jar」包含根彈簧的配置文件。 應用程序啓動時,將core.jar添加試圖加載彈簧的配置文件:
這非常適用於JBoss的EAP 5.1,但不爲WebSphere 7
我試圖直接加載資源:
ClassLoader cl = this.getClass().getClassLoader();
log.info("class loader: " + cl.toString());
URL u = cl.getResource("Plugin.1.spring.xml");
,並得到了相同的結果,雖然日誌的WebSphere告訴當地的類路徑中包含「pluginX.jar」:
[email protected] [應用程式:CG EAR]
本地CLASSPATH: /opt/IBM/WAS7/AppServer/profiles/srv01/installedApp/cell01/CG.EAR.ear /lib/pluginX.jar
家長:[email protected]
代表團模式:PARENT_LAST
什麼想法?
'classpath *:/./ Plugin。*。spring.xml'應該是什麼意思?爲什麼這樣複雜的模式? – fnt
它是一種Ant風格的模式,用於查找每個文件xml,如「Plugin.1.spring.xml」。它適用於JBoss –
已解決:似乎Spring類** PathMatchingResourcePatternResolver **不能遍歷WebSphere中的jar文件。 javadocs類聲稱:「如果獲得了一個jar URL,解析器必須能夠從它獲得一個java.net.JarURLConnection,或手動解析jar的URL,以便能夠遍歷jar的內容,並解析通配符,這將在大多數環境中工作,但在其他環境中會失敗......「 –