Как настроить Classpath на сервере приложений Websphere?

Мне нужно добавить банку log4j в путь к классам сервера WAS, но я не могу ее поставить. Пожалуйста, предложите. Я попытался добавить эту банку в сценарий запуска сервера WAS.


person abhishek jain    schedule 15.03.2010    source источник


Ответы (5)


Как упомянул Майкл Рэнсли, вам нужно определить, кому нужен log4j. Если это веб-приложение, то WEB-INF/lib — лучшее место.

Если он используется компонентами EJB, поместите log4j в качестве утилиты jar в EAR.

Или создайте общую библиотеку и свяжите ее с вашим приложением.

Другой вариант — связать общую библиотеку с вашим сервером (вместо приложения), и в этом случае она станет доступной для всех приложений, работающих на этом сервере.

Хранение в lib/ext сервера приложений или других базовых путях к классам обычно является плохой идеей. Причина в том, что это может вызвать конфликты (log4j не вызывает конфликтов, но другие файлы JAR, вероятно, могут вызывать конфликты) и может даже помешать запуску сервера приложений.

Также помните, что в зависимости от того, где хранится файл log4j.jar (или связан с общими библиотеками), разные загрузчики классов будут получать этот файл JAR.

person Manglu    schedule 17.03.2010
comment
Привет, при поиске моей проблемы я нашел этот протектор. На самом деле у меня есть внешние адаптеры ресурсов на WAS7.0. Проблема, с которой я столкнулся, заключается в том, что некоторые классы во внешних адаптерах ресурсов имеют импорт в классы, которые присутствуют внутри WEB-INF\lib развернутой WAR. Теперь, когда я запускаю веб-сферу, я получаю classNotFounds. эта банка уже развернута как служебная банка для EAR ... но все еще похожая ошибка. ? - person Mukul Goel; 09.10.2012

В консоли администратора выберите Среда->Общие библиотеки.

Затем на отображаемой странице выберите «Создать» и следуйте инструкциям, чтобы добавить свою библиотеку.

person Robin    schedule 15.03.2010
comment
Робин, создание общей библиотеки ничего не дает. Вам необходимо связать общую библиотеку с приложением или с сервером приложений (через загрузчик классов), чтобы она стала частью времени выполнения. - person Manglu; 23.03.2010

Это зависит от того, почему вы хотите добавить его. Нужен ли вам доступ к log4j из ваших приложений, если да, вы можете добавить его в приложение (т. е. в каталог WEB-INF/lib), если вы пишете компонент, который должен работать в среде выполнения WebSphere (т. library), то вы можете поместить его в WebSphere/AppServer/lib/ext.

person mransley    schedule 15.03.2010

Если у вас есть несколько веб-приложений, которым необходимо совместно использовать один и тот же log4j.xml, вы можете поместить его в IBM\WebSphere\PortalServer\shared\app\\

В противном случае поместите его в web-inf/lib вашего веб-приложения.

person user448787    schedule 26.09.2011

PROFILE_ROOT/свойства

  • эта папка находится в пути к классам и используется для хранения свойств
  • если у вас разные профили, например, для тестирования или интеграции, у них могут быть разные настройки

источник

person Mike    schedule 12.08.2016