1
我正在嘗試使用openfire REST-API-客戶端。我正在調用方法使用以下代碼將用戶添加到openfire。MessageBodyProviderNotFoundException:未找到媒體類型爲text/html的MessageBodyReader; charset = UTF-8
AuthenticationToken authenticationToken = new AuthenticationToken("username","password");
RestApiClient restApiClient = new RestApiClient("url",port, authenticationToken);
UserEntity openFireUser = restApiClient.getUser(user.getUsername());
當我調用API時,我得到以下異常。
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/html;charset=UTF-8, type=class org.igniterealtime.restclient.entity.UserEntity, genericType=class org.igniterealtime.restclient.entity.UserEntity.
at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:231)
at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)
at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1085)
at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:874)
at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:808)
at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326)
at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:115)
我googled,它看起來有一些與依賴關係的問題。但沒有任何工作。
下面是我的build.gradle
compile(group: 'org.igniterealtime', name :'rest-api-client', version: igniterealtime_rest_api_version){
exclude group: 'org.slf4j', module: 'slf4j-simple'
exclude group: 'org.slf4j', module: 'slf4j-api'
}
我也嘗試添加以下的依賴我的build.gradle,但沒有奏效。
compile group: 'org.glassfish.jersey.core', name: 'jersey-client', version: '2.23'
compile group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: '2.2'
compile group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.24'
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.4.1'
你連接到正確的網址是什麼?在錯誤消息中,它表示您收到的響應具有媒體類型「text/html」,顯然,它不能被解析爲用戶實體。這很可能是由於未收到成功響應(200 OK)或由於連接到錯誤的URL所致。 –
做一些調試。檢查狀態碼和正文。在客戶端反序列化之前檢查狀態碼始終是一個好主意,因此您可以在錯誤狀態下執行其他操作 –
遇到問題。其實我必須在openfire中安裝REST API插件。 – ashishjmeshram