Обычно рекомендуется использовать GlassFish Common Classloader .Это означает помещение общих JARS в папку $ domain-dir / lib (но , а не в подпапку этого).
Возможно, вы пытаетесь использовать Application Classloader с командой asadmin deploy --libraries
.Это сложнее и подвержено ошибкам.Если вам не нужны разные версии одних и тех же JAR-файлов с разными веб-приложениями, вам определенно следует выбрать Common Classloader , как указано выше.
Также см. Иерархия загрузчиков классов для справки.
РЕДАКТИРОВАТЬ Обновлено в соответствии с комментарием опрашивающего:
Папка domain/domain1/lib
определенно работает (я проверял это).Чтобы проверить это, поместите log4j.jar
в эту папку и добавьте test.jsp
к domain1/applications/$applicationName
, который просто содержит:
<% out.println(
org.apache.log4j.Logger.getLogger(this.getClass())); %>
Если это работает, а другой код - нет, возможно,еще один момент, который стоит рассмотреть: используете ли вы Log4J Logger.getLogger(..)
или Apache Commons 'LogFactory.getInstance(..)
в своем коде?
См. статью Таксономия проблем загрузчика классов, возникающих при использовании Jakarta Commons Logging для связанных вопросов.- Я также хотел бы посоветовать вам опубликовать полную трассировку стека.