2015-05-28 70 views
1

在Windows 7中運行JBOSS EAP 6.4.0.GA(AS 7.5.0.Final-redhat-21)。 Commons lang 部署在路徑 。\ jboss-eap-6.4 \ modules \ system \ layers \ base \ org \ apache \ commons \ lang \ main \ commons-lang-2.6.0.redhat-4.jar和module.xml中同一個文件夾說java.lang.NoClassDefFoundError:部署Web應用程序時的org/apache/commons/lang/StringUtils

<module xmlns="urn:jboss:module:1.1" name="org.apache.commons.lang">... 

Red Hat,在我的Web應用程序的META-INF/MANIFEST.MF我有條目:

Dependencies: org.apache.commons.lang 

使用NetBeans 8.0.2我調試應用程序,但它無法啓動,出現錯誤:

[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/TestApp]] (ServerService Thread Pool -- 62) 
JBWEB000287: Exception sending context initialized event to listener 
instance of class com.netu.test.web.ContextListener: java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils 
      at com.xxx.lib.db.ConnectionPoolSetter.setJdbcURL 
(ConnectionPoolSetter.java:81) 

所以我得到錯誤有關的Jboss找不到類StringUtils的,但是那類是in commons lang。請注意,我不想在Web應用程序的WEB-INF/lib中部署commons lang。我想使用模塊,因爲它安裝在JBoss中。

我在做什麼錯?

回答

1
  1. 創建/ JBoss的部署,structure.xml WEB-INF
  2. 添加以下XML:

    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"> 
        <deployment> 
        <dependencies> 
         <module name="org.apache.commons.lang" export="true" services="import" meta-inf="import"/> 
        </dependencies> 
        </deployment> 
    </jboss-deployment-structure> 
    
+0

注意所有:爲了 「這個」 工作,您將不得不在WEB-INF中創建一個jboss-deployment-structure.xml並添加以下xml: 這將是很好的,如果@mrboo更新了答案。我會將其標記爲正確的。 – chrisl08