简体   繁体   English

JBOSS EAP6.4中的NoClassDefFoundError

[英]NoClassDefFoundError in JBOSS EAP6.4

When I deploy my war in JBOSS EAP6.4 I get below error inspite of having jackson-mapper-asl.1.9.2.jar in my classpath and setting to read in deployment structure 当我在JBOSS EAP6.4中部署我的战争时,尽管我的类路径中有jackson-mapper-asl.1.9.2.jar并且设置为读取部署结构,但我得到以下错误

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="deploy" />
            <module name="org.codehaus.jackson.jackson-mapper-asl" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

Below is the log stack 下面是日志堆栈

     Thread-11733 2016-09-12 06:12:10,169 | WARN  | session=       | user=           | org.hornetq.jms.client | HQ122001: Unhandled exception thrown from onMessage: java.lang.RuntimeException: java.lang.LinkageError: Failed to link com/sun/jersey/api/json/JSONWithPadding (Module "deploy:main" from local module loader @ed17bee (finder: local module finder @2a33fae0 (roots: /vend/hybris/jboss/jboss-eap-6.4/modules,/vend/hybris/jboss/jboss-eap-6.4/modules/system/layers/base/.overlays/BZ1281963,/vend/hybris/jboss/jboss-eap-6.4/modules/system/layers/base,/vend/hybris/OTMM16/Media-Manager/mediamanagement,/vend/hybris/OTMM16/Media-Manager/mediamanagement)))
    at com.artesia.event.services.EventListenerManager$EventListenerWrapper.onMessage(EventListenerManager.java:101)
    at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:98)
    at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1117)
    at org.hornetq.core.client.impl.ClientConsumerImpl.access$500(ClientConsumerImpl.java:57)
    at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1252)
    at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:105)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.LinkageError: Failed to link com/sun/jersey/api/json/JSONWithPadding (Module "deploy:main" from local module loader @ed17bee (finder: local module finder @2a33fae0 (roots: /vend/hybris/jboss/jboss-eap-6.4/modules,/vend/hybris/jboss/jboss-eap-6.4/modules/system/layers/base/.overlays/BZ1281963,/vend/hybris/jboss/jboss-eap-6.4/modules/system/layers/base,/vend/hybris/OTMM16/Media-Manager/mediamanagement,/vend/hybris/OTMM16/Media-Manager/mediamanagement)))
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487)
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277)
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92)
    at org.jboss.modules.Module.loadModuleClass(Module.java:568)
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
    at com.sun.jersey.core.reflection.MethodList.getAllDeclaredMethods(MethodList.java:70)
    at com.sun.jersey.core.reflection.MethodList.<init>(MethodList.java:64)
    at com.sun.jersey.core.spi.component.ComponentConstructor.getPostConstructMethods(ComponentConstructor.java:132)
    at com.sun.jersey.core.spi.component.ComponentConstructor.<init>(ComponentConstructor.java:124)
    at com.sun.jersey.core.spi.component.ProviderFactory.__getComponentProvider(ProviderFactory.java:165)
    at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:137)
    at com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:283)
    at com.sun.jersey.core.spi.component.ProviderServices.getServices(ProviderServices.java:163)
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.initWriters(MessageBodyFactory.java:207)
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:163)
    at com.sun.jersey.api.client.Client.init(Client.java:343)
    at com.sun.jersey.api.client.Client.access$000(Client.java:119)
    at com.sun.jersey.api.client.Client$1.f(Client.java:192)
    at com.sun.jersey.api.client.Client$1.f(Client.java:188)
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
    at com.sun.jersey.api.client.Client.<init>(Client.java:188)
    at com.sun.jersey.api.client.Client.<init>(Client.java:171)
    at com.microsoft.windowsazure.core.pipeline.jersey.Exports$3.create(Exports.java:81)
    at com.microsoft.windowsazure.core.pipeline.jersey.Exports$3.create(Exports.java:65)
    at com.microsoft.windowsazure.core.DefaultBuilder.build(DefaultBuilder.java:200)
    at com.microsoft.windowsazure.core.DefaultBuilder$1.create(DefaultBuilder.java:138)
    at com.microsoft.windowsazure.core.DefaultBuilder.build(DefaultBuilder.java:200)
    at com.microsoft.windowsazure.core.DefaultBuilder$1.create(DefaultBuilder.java:138)
    at com.microsoft.windowsazure.core.DefaultBuilder.build(DefaultBuilder.java:200)
    at com.microsoft.windowsazure.Configuration.create(Configuration.java:119)
    at com.microsoft.windowsazure.services.media.MediaService.create(MediaService.java:47)
    at com.example.AzureAPIProxy.getMediaService(AzureAPIProxy.java:250)
    at com.artesia.event.services.EventListenerManager$EventListenerWrapper.onMessage(EventListenerManager.java:85)
    ... 8 more
Caused by: java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonSerializableWithType
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482)
    ... 51 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.map.JsonSerializableWithType from [Module "deploy:main" from local module loader @ed17bee (finder: local module finder @2a33fae0 (roots: /vend/hybris/jboss/jboss-eap-6.4/modules,/vend/hybris/jboss/jboss-eap-6.4/modules/system/layers/base/.overlays/BZ1281963,/vend/hybris/jboss/jboss-eap-6.4/modules/system/layers/base,/vend/hybris/OTMM16/Media-Manager/mediamanagement,/vend/hybris/OTMM16/Media-Manager/mediamanagement))]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
    ... 55 more

How to resolve this? 怎么解决这个?

It seems like the "deploy" folder is probably not located at the correct folder tree level under modules. 看起来“deploy”文件夹可能不位于模块下正确的文件夹树级别。 I would also recommend not naming it a "deploy" folder to avoid confusions with the actual deploy. 我还建议不要将其命名为“deploy”文件夹,以避免与实际部署混淆。

Your folder structure should look like this if you want to get it working as you have it referenced. 您的文件夹结构应该如下所示,如果您想让它在引用时工作。

vend/hybris/jboss/jboss-eap-6.4/modules/deploy/main . vend/hybris/jboss/jboss-eap-6.4/modules/deploy/main Under this folder you should have a module.xml file and a reference to the necessary jars along with the jars themselves. 在此文件夹下,您应该有一个module.xml文件以及对必要的jar以及jar本身的引用。

I Have fixed this issue by adding jar to my deploy module. 我已经通过将jar添加到我的部署模块来解决了这个问题。 Looking if there is another approach to fix the issue, as of now adding jar to deploy module has fixed the issue. 看看是否有另一种方法来解决问题,截至目前,将jar添加到部署模块已经解决了这个问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM