JBoss: WAR-файл в EAR не может найти библиотеку JAR по пути к классам
У меня проблема с развертыванием уха с комплектными войнами, банками и файлами конфигурации (файлы .properties) на JBoss 4.3-eap. Вот моя структура уха:
+app.ear
+lib
*.jar libraries that the war's use
+classes
*.properties and other configuration files
+META-INF
application.xml
jbos-app.xml
app.war
app2.war
appn.war
У меня есть следующее в моем jboss-app.xml:
<jboss-app>
<jmx-name>app.startup.JbossStartUpServer:service=JbossStartUpService</jmx-name>
</jboss-app>
Мой application.xml выглядит так:
<application id="app_id">
<display-name>App>/display-name>
<description>TheApp>/description>
<!--
<module id="core">
<java>lib/core.jar</java>
</module>
<module id="tag">
<java>lib/tag.jar</java>
</module>
-->
<module id="app">
<web>
<web-uri>app.war</web-uri>
<context-root>/</context-root>
</web>
</module>
<module id="app2">
<web>
<web-uri>app2.war</web-uri>
<context-root>/app2</context-root>
</web>
</module>
<module id="appn">
<web>
<web-uri>appn.war</web-uri>
<context-root>/appn</context-root>
</web>
</module>
<security-role id="secRole">
<description>users</description>
<role-name id="appRoleName">users</role-name>
</security-role>
<library-directory>lib</library-directory>
</application>
По сути, при развертывании уха я сталкиваюсь с проблемой, когда одна из моих войн не может найти класс вcore.jar
файл (java.lang.NoClassDefFoundErro
р). Я думаю, что это связано с тем, что война не находит эту библиотеку, хотя она находится вlib
Папка / CLASSPATH. Если я попытаюсь раскомментировать первые два модуля, чтобы добавить библиотеки первой стороны (core.jar
а такжеtag.jar
), внезапно файлы свойств больше не могут быть найдены (на данный момент они находятся вlib/classes
так что, надеюсь, в любом случае, их подхватит загрузчик классов. В идеале я хотел бы поместить классы в отдельный каталог и добавить его в путь к классам отдельно, но сейчас я просто пытаюсь заставить это работать).
Я пробовал некоторые другие вещи, в том числе добавление вручнуюcore.jar
на войнуmanifest.mf
файл, изменениеUseJBossWebLoader
чтобы истина вjboss-service.xml
файл подjboss-web.deployer
и различные комбинации вышеперечисленного, безуспешно. Я либо теряюclasses
каталог из пути к классам (lib
папка), и ни один из моих файлов свойств не будет поднят, или война не сможет получить доступ к нужному классу из банки. Я думаю, что должна быть какая-то конфигурация, которая является неправильной, и хотя я пытался прочитать о том, как JBoss выполняет развертывание EAR и загрузку классов, я не могу адаптировать его к моей текущей установке.
Любые предложения будут ценны.
Вот несколько сайтов, на которые я смотрел:
Raible Designs JBoss ClassLoader Logic
Это всего лишь несколько сайтов, на которые я смотрел. Проблемы могут быть связаны с настройкой проекта, так как это большой установленный проект, который (в некоторой степени) переносится из развертывания в сети на Jboss. Так что если есть что-то, что ДОЛЖНО работать, но не работает, это может быть проблемой с некоторыми настройками кода / проекта. К сожалению, я еще не дошел до того, что могу определить, связана ли это с проблемой JBoss или с проектом.