2017-01-01 6 views
1

Je suis confronté à un problème de chargement de la classe dans un serveur WildFly. J'ai déployé mon fichier EAR dans le serveur WildFly Standalone. Et déclaré les dépendances à travers jboss-deployment-structure.xml.Problèmes de chargement de la classe de WildFly 9.0.2

Tout semble fonctionner très bien, sauf cette classe:

Caused by: java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     at javax.el.FactoryFinder.newInstance(FactoryFinder.java:88) 

J'ai essayé de résoudre ce problème en ajoutant le module org.glassfish.javax.el-jboss-deployment-structure.xml:

<jboss-deployment-structure> 
    <deployment> 
     <dependencies>  
      <module name="org.glassfish.javax.el" export= "TRUE"/> 
      <module name="xxxxxxxx" export= "TRUE"/> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

J'ai aussi essayé de résoudre en ajoutant ceci à global-modules dans le fichier de configuration. Mais encore je reçois la même erreur.

<global-modules> 
     <module name="org.glassfish.javax.el" slot="main"/> 
</global-modules> 

J'ai essayé de vous connecter classloading en permettant TRACE la catégorie de l'enregistreur org.jboss.classloader mais pas de chance.

Puis j'ai activé la classe de JAVA_OPTS (-verbose:class) à la console mais cette classe est trouvée dans le journal. En fait, je n'ai pas trouvé beaucoup de pots mentionnés dans le jboss-deployment-structure.xml dans les journaux.

Quelqu'un pourrait m'aider s'il vous plaît à résoudre ce problème? Merci d'avance!

+0

Pouvez-vous inclure les parties pertinentes de 'jboss-deployment-structure.xml' et ce que vous avez essayé dans' global-modu les'? –

+0

@TT. Ajout de parties pertinentes – Hello

+1

Vous ne devriez normalement pas jouer avec 'jboss-deployment-structure.xml' ou' global-modules'. Quel est le problème de chargement de classe d'origine que vous essayiez de résoudre? –

Répondre

0

vous avez manqué la dépendance el-api, vous pouvez ajouter le pot suivant

<dependency> 
    <groupId>javax.el</groupId> 
    <artifactId>el-api</artifactId> 
    <version>2.2</version> 
    <scope>provided</scope> 
</dependency> 

ou

<dependency> 
    <groupId>javax.el</groupId> 
    <artifactId>javax.el-api</artifactId> 
    <version>3.0.0</version> 
    <scope>test</scope> 
</dependency> 

Alors vous avez rencontré ClassNotFoundException: com.sun.el.ExpressionFactoryImpl, Vous avez manqué el-impl jar

<dependency> 
    <groupId>org.glassfish.web</groupId> 
    <artifactId>el-impl</artifactId> 
    <version>2.2</version> 
    <scope>test</scope> 
</dependency>