Grails - попытка развернуть приложение nojars в glassfish 3.0.1 - PullRequest
0 голосов
/ 16 ноября 2010

Из-за ограничений памяти я пытаюсь создать приложение grails с меньшим объемом памяти.Я строю войну с этим аргументом "--nojars".Я создал военный файл без всего jar-файла, и при развертывании внутри glassfish я сталкиваюсь с этой ошибкой

Исключение при загрузке приложения: java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start:org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.ClassNotFoundException: org.codehaus.groovy.grails.web.util.Log4jConfigListener

Похоже, что приложение не может найти, где находитсяфляга

Я уже указал путь к библиотеке до развертывания приложения в Glassfish.

я что-то пропустил?

1 Ответ

0 голосов
/ 16 ноября 2010

Обычно рекомендуется использовать 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 для связанных вопросов.- Я также хотел бы посоветовать вам опубликовать полную трассировку стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...