2011-11-11 3 views
8

Je suis en train de mettre en place des bibliothèques Spring 3.0.6 comme module dans JBoss 7.module Spring dans JBoss 7

J'ai tous les bocaux en modules/org/springframework/principal avec le module suivant .xml

<module xmlns:"urn:jboss:module:1.0" name="org.springframework"> 
    <resources> 
      <resource-root path="org.springframework.beans-3.0.6.RELEASE.jar"/> 
      ... 
    </resources> 

    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.servlet.api"/> 
     <module name="org.apache.commons.logging"/> 
    </dependencies> 
</module> 

I ajouté org.springframework à la ligne de dépendances dans mon MANIFEST.MF

Quand je l'application déploie l'exception suivante est générée lors de l'analyse de mon dossier spring-servlet.xml (désolé, cela est d'un système qui est pas en réseau)

SAXParseException: ... Cannot find the declaration of element 'beans' 

Ma première pensée était que le module n'est pas utilisé, mais si je retire org.springframework de mes dépendances la ligne, il ne trouve pas org.springframework.web.context.ContextLoaderListener

Tout fonctionne bien si je mets les pots dans WEB-INF/lib au lieu d'utiliser le module.

spring-servlet.xml contient la référence de schéma suivant

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 

donc je mets spring-beans-3.0.xsd dans le même répertoire que spring-servlet.xml et modifié le xml à

http://www.springframework.org/schema/beans spring-beans-3.0.xsd 

mais toujours pas de chance.

Quelqu'un at-il une idée de la raison pour laquelle les fichiers de classe sont trouvés mais pas les fichiers xsd?

+0

Vos fichiers JAR sont-ils nommés comme suit: org.springframework.beans-3.0.6.RELEASE.jar ou simplement beans-3.0.6.RELEASE.jar? –

+0

ce fichier est nommé org.springframework.beans-3.0.6.RELEASE.jar, les autres sont nommés de la même manière qu'ils proviennent de la distribution de printemps. Les fichiers jar semblent être reconnus lors de l'analyse du module car il existe un fichier .index pour chacun des pots dans le module. – Thevenin

+0

Incidemment, je tente cela sur JBoss 7.0.2. – Thevenin

Répondre

5

Juste au cas où le lien qui a été donné dans les commentaires va, le problème est que

Problème:

Les fichiers de configuration d'espace de noms sont en META-INF, mais ce répertoire n'est pas visible (il n'est pas configurable par l'intermédiaire jboss-déploiement structure.xml)

Solution:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> 
     <deployment> 
      <dependencies> 
       <module name="org.apache.commons.logging"/> 
       <module name="org.springframework" > 
        <imports> 
         <include path="META-INF**"/> 
         <include path="org**"/> 
        </imports> 
       </module> 
      </dependencies> 
    </jboss-deployment-structure> 
+3

Juste pour clarifier: le commentaire "il n'est pas configurable via jboss-deployment-structure.xml" est une ancienne information d'une version précédente. Maintenant, il est configurable, comme l'exemple dans cette réponse montre. – eis

0

Était confronté au même problème. A mis en place un module de ressort sur JBoss 7, puis lors du déploiement de mon application, faisait face à l'avertissement ci-dessous:

Impossible de lire le document de schéma « http://www.springframework.org/schema/beans/spring-beans-3.2.xsd »

Je compris le fichier de contexte de printemps a été impossible d'accéder aux définitions de schéma à partir des pots de printemps, après avoir lu le lien dans les commentaires ci-dessus. Et par conséquent, l'application n'était pas déployée. Mais la solution donnée ici n'a pas fonctionné pour moi. Mais le code ci-dessous dans jboss-deployment-structure.xml a résolu le problème.

Solution

<module name="org.springframework.spring" meta-inf="export" export="true" /> 

Ajouté meta-inf="export" attribut.