У меня возникла проблема с развертыванием уха со связанными wars, 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
r). Я думаю, это связано с тем, что война не находит эту библиотеку, даже несмотря на то, что она находится в папке lib
/classpath. Если я попытаюсь раскомментировать первые два модуля, чтобы добавить библиотеки первой партии (core.jar
и tag.jar
), то вдруг файлы свойств перестанут быть найдены (они находятся пока в lib/classes
, так что, надеюсь, все же , они подхватываются загрузчиком классов. В идеале я хотел бы поместить классы в свой собственный каталог и добавить его в путь к классам отдельно, но пока я просто пытаюсь заставить это работать).
Я пробовал некоторые другие вещи, включая ручное добавление core.jar
в файл войны manifest.mf
, изменение UseJBossWebLoader
на true в файле jboss-service.xml
под jboss-web.deployer
и различные комбинации вышеперечисленного, но безуспешно. Я либо теряю каталог classes
из пути к классам (папка lib
), и ни один из моих файлов свойств не подбирается, либо война не может получить доступ к нужному классу из jar. Я думаю, что должна быть какая-то неправильная конфигурация, и хотя я пытался читать о том, как JBoss выполняет развертывание EAR и загрузку классов, я не могу адаптировать его к моей текущей настройке.
Любые предложения будут ценны.
Вот несколько сайтов, которые я просматривал:
Raible Designs JBoss ClassLoader Logic
Это всего лишь несколько сайтов, которые я просмотрел. Проблемы также могут быть связаны с настройкой проекта, так как это большой устоявшийся проект, который (в некоторой степени) переносится с развертывания weblogic на Jboss. Поэтому, если есть что-то, что ДОЛЖНО работать, но не работает, это может быть проблема с какой-то конфигурацией кода/проекта. К сожалению, я еще не на том этапе, когда могу сказать, связана ли проблема с JBoss или с проектом.