Куда поместить общую библиотеку в JBoss AS 5?

Я плохо знаком с Jboss, но у меня есть несколько веб-приложений, каждая пружина использования - в спящем режиме и другие библиотеки с открытым исходным кодом и портлеты, так в основном теперь каждый военный файл включает те файлы банки. Как я перемещаю эти банки в общее местоположение так, чтобы я не помещал их в каждый военный файл? Я предполагаю, что местоположение server/default/lib, но я не уверен.

Кроме того, как это отличается, чтобы иметь те банки в WEB-INF/lib по сравнению с. JBOSS/server/default/lib? Я столкнусь с какой-либо classloader проблемой?

Также мне сохранили статические данные в статических полях как Singleton, они будут совместно использованы через все ВОЕННЫЕ файлы?

13
задан Ondra Žižka 12 May 2016 в 14:07
поделиться

3 ответа

Классировка:

Вы правы, поставьте .jar , до jboss / server / / lib или jboss / lib .

jboss jboss поставляется с комплектными зимующими, которые тестируются с этим в качестве версии.

См. jboss-6.0.0-Snapshot \ Server \ default \ conf \ jboss-service.xml :

<server>
  <!-- Load all jars from the JBOSS_HOME/server/<config>/lib directory and
       the shared JBOSS_HOME/common/lib directory. This can be restricted to
       specific jars by specifying them in the archives attribute.
       TODO: Move this configuration elsewhere
  -->
  <classpath codebase="${jboss.server.lib.url}" archives="*"/>
  <classpath codebase="${jboss.common.lib.url}" archives="*"/>
</server>

также см.:

DifferenceUSECASES web-inf / lib и jboss / server / default / lib :

Libs в Web / lib Приходите с вашей войной и видны только в этой войне. Если у вас есть другой модуль, например EJB JAR, они не будут видны из этого, и вы получите ClassnotFoundException или (если у вас есть класс в нескольких местах) ClassCastexexception .

libs в jboss-as / server / / lib видны для всего сервера, таким образом, все развернутые приложения и их модули. Тем не менее, (IIRC) у них нет приоритета, поэтому, если вы принесете это Лимерам Э.Г. В войне, но не в банке EJB, вы можете в конечном итоге использовать две разные версии, которые нежелательны (скорее всего, приведет к вышеуказанному ClassCasteException ).

Поведение нагрузки класса может быть настраивается несколько способов, см. E.G. jboss wiki .

Статические данные:

Не полагайтесь на статические поля в Java EE, что приносит неприятности. Например,. Та же класс может быть загружен разными классовыми загрузками, поэтому будут несколько экземпляров этих статических значений.
Если вы хотите поделиться данными между ними войны, используйте внешнее хранилище - база данных, файл (с синхронизацией, если вы пишете ему), кэш JBoss и т. Д.

19
ответ дан 1 December 2019 в 22:39
поделиться

JBOSS/server/default/lib работает нормально.

Все банки в этой папке будут загружены в JBoss.

0
ответ дан 1 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: