首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"MessageBodyReader找不到“后工作良好

"MessageBodyReader找不到“后工作良好
EN

Stack Overflow用户
提问于 2017-08-30 04:41:11
回答 1查看 2.6K关注 0票数 0

所以,我们正在开发一个Android应用程序。我们的等级进口产品如下:

代码语言:javascript
运行
复制
compile 'org.glassfish.jersey.core:jersey-client:2.25'
compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.8.3'

我们使用这些来调用服务器上的REST端点。例如:

代码语言:javascript
运行
复制
enterSpaceTarget.path(Long.toString(skId)).request(MediaType.APPLICATION_JSON).get();

代码语言:javascript
运行
复制
Form form = new Form();
form = form.param("username", username);
form = form.param("password", password);
form = form.param("rememberMe", Boolean.toString(true));
loginWebTarget.request().post(Entity.form(form), String.class);

代码语言:javascript
运行
复制
long before = System.currentTimeMillis();
Long server = pingTarget.request(MediaType.APPLICATION_JSON).get(Long.class);
long after = System.currentTimeMillis();

在我们继续的时候,我将用最后一个例子作为例子。看,它在great...for上工作大约45分钟。在这个时间尺度上很难运行很多测试,但是当你第一次启动应用程序的时候,一切都很好,如果你一直按下按钮,持续几个小时,但是在45分钟没有网络客户端调用之后,下一个电话就失败了。在第一个示例中,它无声地失败,没有抛出异常,但在第三个示例中,它抛出一个MessageBodyProviderNotFoundException,如下所示:

代码语言:javascript
运行
复制
javax.ws.rs.client.ResponseProcessingException: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/html, type=class java.lang.Long, genericType=class java.lang.Long.
    at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:811)
    at org.glassfish.jersey.client.JerseyInvocation.access$700(JerseyInvocation.java:92)
    at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:701)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
    at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:697)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:420)
    at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:316)
    at com.....RestClient.ping(RestClient.java:126)
    at com.....VPBCommunicator.lambda$new$3$VPBCommunicator(VPBCommunicator.java:196)
    at com.....VPBCommunicator$$Lambda$5.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:762)
Caused by: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/html, type=class java.lang.Long, genericType=class java.lang.Long.
    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.JerseyInvocation.translate(JerseyInvocation.java:806)
    ... 13 common frames omitted

我强烈怀疑这只是一个更深层次问题的表现--正如我所说,其他一些电话只是默默地失败了。有谁知道为什么会发生这种事,以及如何解决?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-30 17:33:26

在媒体类型=text/html中找不到MessageBodyReader

除非text/html是您所请求的类型,否则几乎所有时间这都意味着服务器端存在错误,以及您得到的服务器错误页面。您应该检查服务器日志以了解问题所在。

顺便说一句,最好先检查响应的状态,这样才能正确地处理错误,而不是自动尝试反序列化错误响应,最终得到当前得到的异常。

代码语言:javascript
运行
复制
Response response = target().request().get();
if (isError(response)) {
   handleError(response);
} else {
   Long result = response.readEntity(Long.class);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45952032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档