Plik JBoss: WAR w EAR nie może znaleźć biblioteki JAR w ścieżce klasy
Mam problem z wdrożeniem ucha z dołączonymi wojnami, słoikami i plikami konfiguracyjnymi (pliki .properties) w JBoss 4.3-eap. Oto moja struktura ucha:
+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
W moim jboss-app.xml mam następujące:
<jboss-app>
<jmx-name>app.startup.JbossStartUpServer:service=JbossStartUpService</jmx-name>
</jboss-app>
Mój plik application.xml wygląda tak:
<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>
Zasadniczo po uruchomieniu ucha natrafiam na problem, w którym jedna z moich wojen nie może znaleźć klasy wcore.jar
plik (java.lang.NoClassDefFoundErro
r). Myślę, że wynika to z faktu, że wojna nie znajduje tej biblioteki, mimo że znajduje się ona wlib
folder / ścieżka klasy. Jeśli spróbuję odkomentować pierwsze dwa moduły, aby dodać pierwsze biblioteki partyjne (core.jar
itag.jar
), nagle pliki właściwości nie mogą już zostać znalezione (na razie znajdują się wlib/classes
, więc mam nadzieję, że i tak są one pobierane przez program ładujący klasy. Idealnie chciałbym umieścić klasy we własnym katalogu i dodać go osobno do ścieżki klasy, ale na razie próbuję wykonać tę pracę).
Próbowałem innych rzeczy, w tym ręcznego dodawaniacore.jar
do wojnymanifest.mf
plik, zmianaUseJBossWebLoader
do prawdy wjboss-service.xml
plik podjboss-web.deployer
, i różne kombinacje powyższych, bez powodzenia. Albo tracęclasses
katalog ze ścieżki klasy (lib
folder) i żaden z moich plików właściwości nie zostanie odebrany lub wojna nie może uzyskać dostępu do odpowiedniej klasy ze słoika. Myślę, że musi istnieć jakaś konfiguracja, która jest błędna, i chociaż próbowałem czytać na temat sposobu, w jaki JBoss wykonuje wdrożenia EAR i ładowanie klas, nie wydaje mi się, aby mogłem go dostosować do mojej obecnej konfiguracji.
Wszelkie sugestie byłyby bardzo mile widziane.
Oto kilka stron, na które patrzyłem:
Raible Designs JBoss ClassLoader Logic
To tylko kilka witryn, na które spojrzałem. Problemy mogą również wynikać z konfiguracji projektu, ponieważ jest to duży projekt, który jest (w pewnym stopniu) migrowany z wdrożenia weblogic do Jboss. Więc jeśli istnieje coś, co POWINNO działać, ale nie, może to być problem z niektórymi konfiguracjami kodu / projektu. Niestety, nie jestem jeszcze w punkcie, w którym mogę stwierdzić, czy jest to problem związany z JBoss, czy problem z projektem.