2017-01-12 2 views
1

나는 Jackson 2 on Wildfly 10: How to load ProviderBase?제이보스 (10)과 잭슨이

받는다는의 모든 dependecies 같은 문제가 있나요? 모듈에서

<deployment> 
    <dependencies> 
     <module name="by.lib" meta-inf="export" export="true"/> 
     <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/> 
     <!--<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" export="true"/>--> 
     <!--<module name="org.jboss.resteasy.resteasy-jaxrs" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.core.jackson-databind" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.core.jackson-core" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.core.jackson-annotations" export="true"/>--> 
     <!--<module name="org.jboss.resteasy.resteasy-jackson2-provider" export="true"/>--> 
    </dependencies> 
    <exclude-subsystems> 
     <subsystem name="logging"/> 
     <subsystem name="resteasy"/> 
    </exclude-subsystems> 
</deployment> 

난 내가

시도 다른 오류

13:10:27,005 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 59) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Failed to link com/fasterxml/jackson/jaxrs/base/ProviderBase (Module "by.lib:main" from local module loader @1c2c22f3 (finder: local module finder @18e8568 (roots: D:\Work\Server_10.1.0\modules,D:\Work\Server_10.1.0\modules\system\layers\base))): javax/ws/rs/ext/MessageBodyReader 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    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) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Failed to link com/fasterxml/jackson/jaxrs/base/ProviderBase (Module "by.lib:main" from local module loader @1c2c22f3 (finder: local module finder @18e8568 (roots: D:\Work\Server_10.1.0\modules,D:\Work\Server_10.1.0\modules\system\layers\base))): javax/ws/rs/ext/MessageBodyReader 
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201) 
    at com.google.common.cache.LocalCache.get(LocalCache.java:3937) 

또는

13:14:10,114 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 25) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Failed to link com/fasterxml/jackson/jaxrs/base/ProviderBase (Module "by.lib:main" from local module loader @1c2c22f3 (finder: local module finder @18e8568 (roots: D:\Work\Server_10.1.0\modules,D:\Work\Server_10.1.0\modules\system\layers\base))): javax/ws/rs/ext/MessageBodyReader 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    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) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Failed to link com/fasterxml/jackson/jaxrs/base/ProviderBase (Module "by.lib:main" from local module loader @1c2c22f3 (finder: local module finder @18e8568 (roots: D:\Work\Server_10.1.0\modules,D:\Work\Server_10.1.0\modules\system\layers\base))): javax/ws/rs/ext/MessageBodyReader 
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201) 
    at com.google.common.cache.LocalCache.get(LocalCache.java:3937) 
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941) 
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824) 

를 잡을 잭슨-jaxrs-베이스 2.8.5

에 dependecies이

@Provider 
@Produces(MediaType.APPLICATION_JSON) 
public class ConfiguredRESTProvider implements ContextResolver<ObjectMapper> { 

    private static ObjectMapper mapper; 

    static { 
     mapper = new ObjectMapper(); 
     AnnotationIntrospector primary = new JacksonAnnotationIntrospector(); 
     AnnotationIntrospector secondary = new JaxbAnnotationIntrospector(mapper.getTypeFactory()); 
     AnnotationIntrospector pair = AnnotationIntrospectorPair.create(primary, secondary); 
     mapper.setAnnotationIntrospector(pair); 

     mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true); 
     // TODO Разбраться почему не отрабатывае? ("balanceAmount": 2.41E8) 
     mapper.configure(SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN, true); 
     mapper.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true); 
     mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
     // mapper.configure(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS,true); 
     mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); 
    } 

    // public void ConfiguredRESTProvider() { 
    // // ObjectMapper mapper = new ObjectMapper(); 
    // ObjectMapper mapper = locateMapper(type, json); 
    // ObjectMapper mapper = super._mapperConfig.getDefaultMapper(); 
    // // AnnotationIntrospector primary = new JacksonAnnotationIntrospector(); 
    // // AnnotationIntrospector secondary = new JaxbAnnotationIntrospector(mapper.getTypeFactory()); 
    // // AnnotationIntrospector pair = AnnotationIntrospectorPair.create(primary, secondary); 
    // // mapper.setAnnotationIntrospector(pair); 
    // 
    // mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true); 
    // // TODO Разбраться почему не отрабатывае? ("balanceAmount": 2.41E8) 
    // mapper.configure(SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN, true); 
    // mapper.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true); 
    // mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
    // // mapper.configure(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS,true); 
    // mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); 
    // super.setMapper(mapper); 
    // } 

    @Override 
    public ObjectMapper getContext(Class<?> aClass) { 
     return mapper; 
    } 

} 
,

제이보스 구조

<deployment> 
    <dependencies> 
     <module name="by.lib" meta-inf="export" export="true" services="import"/> 
     <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/> 
     <!--<module name="org.jboss.resteasy.resteasy-jackson2-provider" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" export="true"/>--> 
     <!--<module name="org.jboss.resteasy.resteasy-jaxrs" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.core.jackson-databind" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.core.jackson-core" export="true"/>--> 
     <!--<module name="com.fasterxml.jackson.core.jackson-annotations" export="true"/>--> 
     <!--<module name="org.jboss.resteasy.resteasy-jackson2-provider" export="true"/>--> 
    </dependencies> 
    <exclusions> 
     <module name="org.jboss.resteasy.resteasy-jackson-provider"/> 
     <module name="org.jboss.resteasy.resteasy-jettison-provider"/> 
     <module name="org.jboss.resteasy.resteasy-jackson2-provider"/> 
    </exclusions> 
    <exclude-subsystems> 
     <subsystem name="logging"/> 
     <!--<subsystem name="resteasy"/>--> 
    </exclude-subsystems> 
</deployment> 

제가

JaxbAnnotationIntrospector위한
2017-01-12 10:59:27,659 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 93) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./: java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/jaxb/JaxbAnnotationIntrospector 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    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) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/jaxb/JaxbAnnotationIntrospector 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
    at java.lang.Class.getConstructors(Class.java:1651) 
    at org.jboss.resteasy.util.PickConstructor.pickSingletonConstructor(PickConstructor.java:30) 
    at org.jboss.resteasy.spi.ResteasyProviderFactory.createConstructorInjector(ResteasyProviderFactory.java:2252) 
    at org.jboss.resteasy.spi.ResteasyProviderFactory.createProviderInstance(ResteasyProviderFactory.java:2244) 
    at org.jboss.resteasy.spi.ResteasyProviderFactory.addContextResolver(ResteasyProviderFactory.java:1130) 
    at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:1667) 
    at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:1368) 
    at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:1290) 
    at org.jboss.resteasy.spi.ResteasyDeployment.registerProvider(ResteasyDeployment.java:571) 
    at org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:347) 
    at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:250) 
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:113) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:36) 
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation. 
+0

두 번째에 : 귀하의 JBoss에 배포-structure.xml 파일은 다음과 같이 될 것이다. 어느 쪽이 이길 지 확실하지 않습니다. –

답변

1

:

java.lang.NoClassDefFoundError: Failed to link 
com/fasterxml/jackson/jaxrs/base/ProviderBase 

나 :

java.lang.NoClassDefFoundError: com/fasterxml/jackson/jaxrs/base/ProviderBase 

제이보스 것은 /로드 필요한 모든 라이브러리를 수출하지 않습니다. 당신이 모두 포함을 시도하고`org.jboss.resteasy.resteasy-jackson2-provider` 모듈을 제외

<deployment> 
    <dependencies> 
    <module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/> 
    <!-- This module contain the ProviderBase class: --> 
    <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" export="true"/> 
    </dependencies> 
    <exclusions> 
    <!-- Just to make sure these modules are not loaded --> 
    <module name="org.jboss.resteasy.resteasy-jackson-provider"/> 
    <module name="org.jboss.resteasy.resteasy-jettison-provider"/> 
    </exclusions> 
</deployment> 
0

NoClassDefFoundError 모듈 jackson-module-jaxb-annotations이 종속성으로 지정되지 않은 것을 나타낸다 이러한 오차를 갖는다.

이 모듈에는 JaxbAnnotationIntrospector 클래스가 포함되어 있습니다.

<module name="com.fasterxml.jackson.module.jackson-module-jaxb-annotations"/> 

가 적절 수출을 지정

나는대로 종속성을 추가해야 믿습니다. 이 오류 메시지에 대해서는