1

我在部署之前测试的JBoss AS 7在不同的服务器上运行的应用程序的.war文件。java.lang.NoClassDefFoundError:组织/阿帕奇/公/编解码器/ DecoderException JBoss AS中7

我得到这个错误,当我尝试通过应用程序登录到数据库:

SEVERE [] (http--0.0.0.0-8080-4) java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException 
java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException from [Module "deployment.app.war:main" from Service Module Loader] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220) 

在一些论坛上,他们建议增加公共编解码器罐子,但我已经拥有它在JBoss中,对不对? (这里:jboss-as-7.1.1.Final/modules/org/apache/commons/codec/main/commons-codec-1.4.jar

OSGi是没有被激活,坦白说,我不知道有什么用它服务,但是当我尝试激活它,它与我的战争弄乱,因为它无法部署...

如果有任何帮助,我有JDK,但没有JRE。

+0

JBoss的确实有公地编解码器,正如你所指出的,但您的应用程序(或其任何依赖的一种)可以要求不同的版本比你的服务器提供的一个。 – acdcjunior 2013-05-01 05:27:53

回答

0

JBoss应用服务器7默认不模块化类加载使用OSGi的。它使用JBoss模块,所以这与OSGi无关。

你需要的,如果你想使用AS 7提供与JBoss公地编解码器做的是add a dependency您的部署。

0

模块是不可见的你假象类自动。你有三种可能性:在您的standalone.xml http://javahowto.blogspot.de/2012/09/how-to-create-global-modules-in-jboss.html 这个模块将通过你在JBoss部署的所有文物被用来

  1. 定义一个全局模块。
  2. 把它放进你的战争假象,到lib文件夹。你可以用Maven来做到这一点。
  3. 在您的Manifest中定义显式依赖关系。 https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 节依赖性:清单条目
相关问题