2012-01-23 162 views
4

我遇到了commons-httpclient.jar的類路徑問題。jar文件的類路徑問題

該應用程序使用較新版本的commons-httpclient.jar,它是commons-httpclient-3.0.1.jar。

一旦安裝了JBOSS,它會將名爲commons-httpclient.jar的原始版本安裝在兩個不同的目錄中。

/opt/appname/lib and /opt/appname/server/default/lib 

簡單地刪除它們會很容易,但事實證明,它們正在被系統上的另一個應用程序使用。例如,我想知道是否有任何方式指定使用哪個類的順序。

使用commons-httpclient的-3.0.1.jar先再使用公地httpclient.jar

相當新的Java,所以任何幫助,將不勝感激。

+1

如果您將jar包與已部署的應用程序(在WEB-INF/lib中作爲webapp)捆綁在一起,JBoss應該使用應用程序的jar而不是它自己的jar。也就是說,JBoss有一個混亂的階級裝載者和做出意想不到的事情的歷史,所以我不會太肯定。 –

回答

1

我相信在你提到的限制條件下完成此操作的唯一方法是將正確的JAR移動到JBoss上每個應用程序的server/default/lib文件夾中,並將其從/ opt/appname/lib中移除。

也就是說,這可能仍然有問題,因爲JBoss本身可能還需要JAR。在這種情況下,你可能會失敗。

作爲一個方面說明,您可以創建一個文件夾/ jboss/lib/endorsed。放在那裏的Lib優先於那些是jboss/lib。