我們在我們的web應用(戰爭)中使用第三方戰爭。爲了與戰爭溝通,我們創建了一個橋樑模塊(jar)。其目的是防止我們的網絡應用程序直接與外部戰爭進行通信,而是通過網橋模塊進行通信。如何使用maven公開內部戰爭中的WEB-INF/lib
所有3個模塊(2個戰爭和1個jar)都在JBoss中部署的ear文件中。
ear
- war1 (our web app)
- war2 (external web app)
- bridge jar
點要注意的是,橋罐子使用一些API(公開爲罐),其存在於外部戰爭的WEB-INF/lib目錄內。
在調出JBoss的時候,我們得到了java.lang.NoClassDefFoundError錯誤,因爲bridge jar無法找到外部war的WEB-INF/lib中存在的API。
我們不想將所有外部罐子直接放在耳朵下面,因爲這意味着外部罐子並不僅限於其戰爭。
有沒有辦法從橋樑罐子裏訪問外部戰爭的WEB-INF/lib中存在的罐子?我們可以使用maven構建過程來實現這一點,還是有更好的方法呢?
我們修改了bridge jar中的MANIFEST.MF文件,添加了包含我們需要的外部jar的Class-Path條目。 MANIFEST.MF文件如下: Manifest-Version:1.0 Ant-Version:Apache Ant 1.5.3 Package:com.ket.sa Class-Path:WEB-INF/lib/WebObjects-9.2.1的.jar 規格 - 標題:標題 規範廠商: 實現-標題:com.ket.sa 實現廠商: 的實現版本:7.6 但它無法找到上述罐子。這是做到這一點的正確方法嗎? – Sundeep
看起來不錯,不知道這是一個JBoss問題https://issues.jboss.org/browse/JBAS-3883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel另見http:/ /docs.codehaus.org/display/MAVENUSER/Solving+the+Skinny+Wars+problem – JoseK