2017-01-01 21 views
1

我面臨着一個WildFly服務器類加載問題。我已經在WildFly Standalone服務器中部署了我的EAR文件。並通過jboss-deployment-structure.xml聲明相關性。WildFly 9.0.2類加載器發出

似乎一切都工作正常,除了這個類:

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) 

我試圖通過增加來解決這個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> 

我也試圖解決通過增加這global-modules在配置文件中。但是我仍然得到相同的錯誤。

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

我試圖通過啓用org.jboss.classloader記錄器類,但沒有運氣TRACE登錄類加載。

然後我啓用的類加載從JAVA_OPTS(-verbose:class)安慰,但這個類是在日誌中找到。事實上,我沒有在日誌中找到jboss-deployment-structure.xml中提到的許多罐子。

可能有人請幫我解決這個問題呢?先謝謝你!

+0

您能否包含'jboss-deployment-structure.xml'的相關部分以及您在'global-modu中嘗試過的內容les'? –

+0

@TT。添加相關部分 – Hello

+1

您通常不應該混淆'jboss-deployment-structure.xml'或'global-modules'。你試圖解決的原始類加載問題是什麼? –

回答

0

你錯過了EL-API的依賴,你可以添加以下jar

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

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

然後你遇到ClassNotFoundException的:com.sun.el.E​​xpressionFactoryImpl,你錯過了EL-IMPL jar

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