JBoss: WAR-Datei in EAR kann JAR-Bibliothek im Klassenpfad nicht finden

Ich habe ein Problem beim Bereitstellen eines EAR mit gebündelten Wars-, JAR- und Konfigurationsdateien (.properties-Dateien) auf JBoss 4.3-eap. Hier ist meine Ohrstruktur:

+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  

Ich habe folgendes in meiner jboss-app.xml:

<jboss-app>
  <jmx-name>app.startup.JbossStartUpServer:service=JbossStartUpService</jmx-name>
</jboss-app>    

Meine application.xml sieht so aus:

<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>

Grundsätzlich stoße ich beim Aufstellen des Ohrs auf ein Problem, bei dem einer meiner Kriege keine Klasse in der Welt findetcore.jar Datei (java.lang.NoClassDefFoundError). Ich denke, das liegt an der Tatsache, dass der Krieg diese Bibliothek nicht findet, obwohl sie sich im befindetlib Ordner / Klassenpfad. Wenn ich versuche, die ersten beiden Module zu kommentieren, um die Bibliotheken der ersten Partei hinzuzufügen (core.jar undtag.jarPlötzlich können die Eigenschaftendateien nicht mehr gefunden werden (sie befinden sich vorerst inlib/classes, so dass ich trotzdem hoffe, sie werden vom classloader abgeholt. Im Idealfall möchte ich Klassen in einem eigenen Verzeichnis ablegen und separat zum Klassenpfad hinzufügen, aber im Moment versuche ich nur, dies zum Laufen zu bringen.

Ich habe einige andere Dinge ausprobiert, einschließlich manuelles Hinzufügencore.jar zum Kriegmanifest.mf Datei, ändernUseJBossWebLoader wahr in derjboss-service.xml Datei unter derjboss-web.deployerund verschiedene Kombinationen der oben genannten, ohne Erfolg. Ich verliere entweder dieclasses Verzeichnis aus dem Klassenpfad (lib Ordner) und keine meiner Eigenschaftendateien werden abgerufen, oder der Krieg kann nicht auf die richtige Klasse aus dem Glas zugreifen. Ich denke, es muss eine Konfiguration geben, die falsch ist, und während ich mich über die Art und Weise informiert habe, wie JBoss EAR-Bereitstellungen und das Laden von Klassen durchführt, kann ich sie scheinbar nicht an mein aktuelles Setup anpassen.

Anregungen wäre sehr dankbar.

Hier sind einige Websites, die ich mir angesehen habe:
Raible Designs JBoss ClassLoader Logic

Dies sind nur einige der Websites, die ich mir angesehen habe. Die Probleme könnten auch auf die Einrichtung des Projekts zurückzuführen sein, da es sich um ein großes etabliertes Projekt handelt, das (zu einem gewissen Grad) von einer Weblogic-Bereitstellung auf Jboss migriert wird. Wenn es also etwas gibt, das funktionieren SOLLTE, das aber nicht funktioniert, könnte dies ein Problem bei einigen Code- / Projektkonfigurationen sein. Leider bin ich noch nicht an dem Punkt angelangt, an dem ich feststellen kann, ob es sich um ein JBoss-Problem oder ein Problem mit dem Projekt handelt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage