2012-01-23 2 views
4

У меня проблема с classpath с commons-httpclient.jar.проблема с classpath с файлами jar

Приложение использует более новую версию commons-httpclient.jar, которая является commons-httpclient-3.0.1.jar.

После установки JBOSS он устанавливает оригинальную версию с именем commons-httpclient.jar в двух разных каталогах.

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

Было бы легко просто удалить их, но оказывается, что они используются другим приложением в системе. Я хотел бы знать, есть ли способ назначить порядок, к которому используются классы.

Использование Обще-HttpClient-3.0.1.jar первым затем использовать Викисклада httpclient.jar

достаточно новое для Java, так что любая помощь будет оценена.

+1

Если вы связали банку с развернутым приложением (в WEB-INF/lib для webapp), JBoss должен использовать банку вашего приложения, а не собственную банку. Тем не менее, JBoss имеет историю возиться с загрузчиками классов и делать неожиданные вещи, поэтому я не был бы слишком уверен. –

ответ

1

Я считаю, что единственный способ сделать это под ограничениями, которые вы упомянули, - переместить правый JAR в папки сервера/по умолчанию/lib каждого из приложений на вашем JBoss и удалить его из/opt/appname/lib ,

Тем не менее, это может быть проблематично, поскольку JBoss сам может также нуждаться в JAR. В этом случае вам может быть не повезло.

В качестве дополнительной заметки вы можете создать папку/jboss/lib/endorsed. Либы, размещенные там, имеют приоритет над ними: jboss/lib.

Смежные вопросы