2014-09-01 50 views
1

我正在用jackson pojo mapping創建jersey rest客戶端。 這裏是代碼尖晶石:java.lang.NoSuchFieldError:創建球衣休息客戶端時的WADL_JSON

ClientConfig clientConfig = new DefaultClientConfig(); 
    clientConfig.getClasses().add(JacksonJsonProvider.class); 
    clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE); 
    client = Client.create(clientConfig); 
    webResource = client.resource("url to exposed rest web service"); 

這個代碼是在拋繩以下異常client = Client.create(clientConfig)

Sep 01, 2014 12:42:04 PM com.sun.jersey.core.spi.component.ProviderFactory __getComponentProvider 
SEVERE: The provider class, class com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$Wadl, could not be instantiated. Processing will continue but the class will not be utilized 
java.lang.NoSuchFieldError: WADL_JSON 
    at com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$Wadl.<init>(JSONRootElementProvider.java:138) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.sun.jersey.core.spi.component.ComponentConstructor._getInstance(ComponentConstructor.java:161) 
    at com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:141) 
    at com.sun.jersey.core.spi.component.ProviderFactory.__getComponentProvider(ProviderFactory.java:163) 
    at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:134) 
    at com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:232) 
    at com.sun.jersey.core.spi.component.ProviderServices.getProvidersAndServices(ProviderServices.java:149) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:153) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:145) 
    at com.sun.jersey.api.client.Client.<init>(Client.java:275) 
    at com.sun.jersey.api.client.Client.<init>(Client.java:150) 
    at com.sun.jersey.api.client.Client.create(Client.java:476) 
    at com.snapdeal.rnrs.client.RClient.<init>(RClient.java:29) 
    at com.snapdeal.rnrs.client.RestClient.main(RestClient.java:45) 

Sep 01, 2014 12:42:04 PM com.sun.jersey.core.spi.component.ProviderFactory __getComponentProvider 
SEVERE: The provider class, class com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$Wadl, could not be instantiated. Processing will continue but the class will not be utilized 
java.lang.NoSuchFieldError: WADL_JSON 
    at com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$Wadl.<init>(JSONRootElementProvider.java:138) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.sun.jersey.core.spi.component.ComponentConstructor._getInstance(ComponentConstructor.java:161) 
    at com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:141) 
    at com.sun.jersey.core.spi.component.ProviderFactory.__getComponentProvider(ProviderFactory.java:163) 
    at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:134) 
    at com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:232) 
    at com.sun.jersey.core.spi.component.ProviderServices.getProvidersAndServices(ProviderServices.java:149) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.initWriters(MessageBodyFactory.java:171) 
    at com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:146) 
    at com.sun.jersey.api.client.Client.<init>(Client.java:275) 
    at com.sun.jersey.api.client.Client.<init>(Client.java:150) 
    at com.sun.jersey.api.client.Client.create(Client.java:476) 
    at com.snapdeal.rnrs.client.RClient.<init>(RClient.java:29) 
    at com.snapdeal.rnrs.client.RestClient.main(RestClient.java:45) 

我使用下列jar:

jackson-core-asl:1.9.13
jackson-jaxrs:1.9.13
jackson-xc:1.9.13
jersey-client:1.1.5.1

我受夠了搜索google and stackoverflow,但找不到任何解決方案。如果有人遇到同樣的錯誤並解決問題,請提出一些解決方案。

+0

請格式化您的問題中的代碼 – CocoNess 2014-09-01 08:04:53

回答

1

我得到了問題的解決方案。這是由於jar衝突。 我將jersey-client:1.1.5.1更改爲jersey-client:1.18

相關問題