2012-07-18 58 views
0

嘗試進行多部分的JAX RS調用時遇到以下RuntimeException。RuntimeException:未找到JAX RS中的BufferedInMultiPart的MessageBodyReader實現

了java.lang.RuntimeException:甲javax.ws.rs.ext.MessageBodyReader執行未找到類org.a pache.wink.common.model.multipart.BufferedInMultiPart類型和text/html的;字符集= UTF -8媒體類型。驗證所有實體提供者都已正確註冊。如果JAX-RS實體提供者當前不存在,則添加自定義javax.ws.rs.ext.MessageBodyReader提供程序 以處理類型和媒體類型。 在org.apache.wink.client.internal.handlers.ClientResponseImpl.readEntity(ClientResponseImpl.java:12 2) 在org.apache.wink.client.internal.handlers.ClientResponseImpl.getEntity(ClientResponseImpl.java:65) at org.apache.wink.client.internal.handlers.ClientResponseImpl.getEntity(ClientResponseImpl.java:52)

任何人都可以幫助我弄清楚什麼是異常的原因。它偶爾會發生。

回答

1

很明顯,您沒有註冊多部分提供商。你註冊了嗎?嘗試將記錄器置於調試模式,Wink將打印所有註冊的提供者。

0

我有一個非常類似的錯誤:

org.apache.wink.client.ClientRuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: A javax.ws.rs.ext.MessageBodyWriter implementation was not found for the class com.ibm.json.java.JSONObject type and application/json media type. Verify that all entity providers are correctly registered. Add a custom javax.ws.rs.ext.MessageBodyWriter provider to handle the type and media type if a JAX-RS entity provider does not currently exist. 
     at org.apache.wink.client.internal.ResourceImpl.invoke(ResourceImpl.java:240) ~[wink-client-1.4.jar:1.4] 
     at org.apache.wink.client.internal.ResourceImpl.invoke(ResourceImpl.java:189) ~[wink-client-1.4.jar:1.4] 
     at org.apache.wink.client.internal.ResourceImpl.post(ResourceImpl.java:314) ~[wink-client-1.4.jar:1.4] 

經過大量的搜索,我們發現在我的WebSphere 8.5.5缺少的JAR安裝是:

/opt/WebSphere/AppServer855/runtimes/com.ibm.jaxrs.thinclient_8.5.0.jar 

這個jar可以被添加到我的構建過程能夠成功運行,無一例外:

/opt/WebSphere/AppServer855/plugins/com.ibm.ws.prereq.jaxrs.jar