2017-01-20 3 views
0

Wir erstellen eine Reihe neuer Spring-Anwendungen mit gemeinsamen unterstützenden JAR-Dateien. Innerhalb der Anwendungen, die in einer Tomcat-Umgebung eingesetzt werden, ist die Welt gut. Auf dieselben JARs müssen Legacy-Anwendungen zugreifen, die unter JBoss in einer Nicht-Spring-Umgebung ausgeführt werden. Kann mir jemand auf einen Speicherort verweisen oder hier erklären, wie Spring oder JBoss konfiguriert werden, damit die JARs ordnungsgemäß funktionieren oder wie sie so verpackt werden, dass die Spring-Abhängigkeiten Teil des JAR sind? Maven ist auch in der Mischung.Konfigurieren von Spring und JBoss

Antwort

0

Sie können Frühling definieren als Modul

Die folgenden Schritte sind ein Federmodul zu erstellen:

1.Download die gewünschte Version des Frühlings. In diesem Beispiel verwenden wir Spring 3.1.1.

2.Erstellen Sie das Verzeichnis: $ JBOSS_HOME/modules/org/springframework/spring/main.

3.Kopieren Sie die Spring-Bibliotheken, die Sie in dieses Verzeichnis heruntergeladen haben.

4. Erstellen Sie module.xml mit dem folgenden Inhalt in diesem Verzeichnis. Achten Sie darauf, diese entsprechen den Bibliotheken Namen:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.springframework.spring"> 
    <resources> 
    <resource-root path="org.springframework.aop-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.asm-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.aspects-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.beans-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.context-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.context.support-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.core-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.expression-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.instrument-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.instrument.tomcat-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.jdbc-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.jms-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.orm-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.oxm-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.test-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.transaction-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web.portlet-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web.servlet-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web.struts-3.1.1.RELEASE.jar"/> 
    </resources> 
    <dependencies> 
    <module name="org.apache.commons.logging"/> 
    <module name="javax.api" export="true"/> 
    <module name="org.jboss.vfs"/> 
    </dependencies> 
</module> 

Hier ist eine absolute minimale module.xml (die unterschiedliche Feder Version ist irrelevant):

<?xml version="1.0"?> 
<module xmlns="urn:jboss:module:1.1" name="org.springframework.spring"> 
    <resources> 
    <resource-root path="spring-aop-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-beans-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-context-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-core-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-expression-3.2.3.RELEASE.jar"/> 
    </resources> 
    <dependencies> 
    <module name="javax.api"/> 
    <module name="org.apache.commons.logging"/> 
    </dependencies> 
</module> 

5.Put folgende jboss-Deployment structure.xml in Ihrem Anwendungsarchiv (WEB-INF/jboss-deployment-structure.xml für WAR oder META-INF/jboss-deployment-structure.xml für EAR oder EJB-jar) zur Verwendung des obigen Moduls:

Wenn Sie JBoss EAP 6.1.x und höher verwenden, verwenden Sie unten:

?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
    <dependencies> 
     <module name="org.springframework.spring" export="true" meta-inf="export"/> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

Wenn JBoss EAP 6.0.x, dann verwenden Sie unter

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
    <dependencies> 
     <module name="org.springframework.spring" export="true"> 
     <imports> 
      <include path="META-INF**"/> 
      <include path="org**"/> 
     </imports> 
     <exports> 
      <include path="META-INF**"/> 
      <include path="org**"/> 
     </exports> 
     </module> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

Hinweis: META-INF auf dem Modul in dem Jboss-Deployment-structure.xml wurde in JBoss EAP 6.1.0 hinzugefügt, Damit können die Dateien im META-INF einer Ressource sichtbar gemacht werden. Da dies in JBoss EAP 6.0.x nicht verfügbar war, können Sie in diesem Abschnitt auf das Verzeichnis META-INF zugreifen, das standardmäßig nicht sichtbar ist.

Hinweis: Das Spring Framework-Modul sollte keine Ressourcen wie servlet-api.jar, xml-apis.jar, jta-api.jar und andere APIs enthalten. Diese APIs werden entweder vom JDK oder von JBoss implementiert, und der Versuch, eine andere Version der API zu verwenden, führt zu Problemen beim Laden von Klassen und anderen Problemen.

Hinweis: Das Spring-Modul sollte alle Nicht-Java/JavaEE-Abhängigkeiten enthalten. Das Spring-Modul kann von javax.api/javaee.api abhängen, das von JBoss und einem öffentlichen JBoss-Modul bereitgestellt wird. Für andere Abhängigkeiten, wie Spring, z. B. aopalliance, müssten sie als Ressourcen im Modul oder in einem anderen benutzerdefinierten Modul enthalten sein.

+0

Befolgen Sie diese Schritte und jetzt bekomme ich eine Datei nicht gefunden Fehler, wenn es versucht, das erste Glas zu laden. Der Dateiname ist spring-aop-4.3.2.RELEASE.jar und ich habe sowohl '' als auch ' 'irgendwelche Vorschläge @ anup-dey? – Smoketx

+0

Ich habe herausgefunden, das Problem für die Datei nicht gefunden. – Smoketx

Verwandte Themen