Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >"MessageBodyReader找不到“后工作良好

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enterSpaceTarget.path(Long.toString(skId)).request(MediaType.APPLICATION_JSON).get();

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
long before = System.currentTimeMillis();
Long server = pingTarget.request(MediaType.APPLICATION_JSON).get(Long.class);
long after = System.currentTimeMillis();

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 09:33:26

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

复制
相关文章
flashfxp编辑文件显示活动编辑的取消办法
我一直在使用的是国产的8UFTP,但是最近win10系统貌似有点不和谐,编辑文件上传的时候会有一秒“未响应”的卡顿情况,所以有些别扭,又不想做回win7,所以就想起了比较强大的flashfxp。
李洋博客
2021/06/16
1.5K0
取消开机时显示DHCP
集成网卡解决方法: 开机按Del键进入Bios->Integrated Peripherals ->Onboard LAN Boot Rom 改为Disabled。
杨强生
2019/03/05
2.1K0
取消开机时显示DHCP
Linux下gdb使用gdb命令时显示找不到文件
用户10551528
2023/10/18
8070
Maven 错误找不到符号
当碰到maven错误:找不到符号问题时,通常第一反应应该是执行eclipse的Project -> Clean … -> Clean all projects,然后再执行maven clean,将项目清理一下,然后再试试,如果还是不能解决接着往下看。
我是李超人
2020/08/20
7.4K0
vs2010点调试,显示系统找不到指定的文件
首先,查看“项目”-“属性”-“链接器”-“常规”-“输出文件”,路劲是否是“bin/xxx.exe”, 如果是请继续看我的解答,否则请忽略下面的内容。 原因是用VS2010加载调试以前的VC6.0下
互联网金融打杂
2018/04/03
2.3K0
vs2010点调试,显示系统找不到指定的文件
git取消文件跟踪
在使用git的时候,有些文件是不需要上传的,所以就可以修改   .gitignore 
lin_zone
2018/08/15
1.3K0
git取消文件跟踪
《SpringCloud错误篇:application.yml文件显示灰色》
2.File Types—>Text—>application.yml删除
2020/11/13
1.4K0
《SpringCloud错误篇:application.yml文件显示灰色》
git取消文件跟踪
在使用git的时候,有些文件是不需要上传的,所以就可以修改 .gitignore
全栈程序员站长
2022/07/07
1.5K0
git取消文件跟踪
bootstrap-fileinput上传完文件后再打开上传文件界面显示取消按钮
Bootstrap File Input是一款基于bootstrap框架的html5上传文件插件,具体展示效果如下:
johnhuster的分享
2022/03/28
1.8K0
bootstrap-fileinput上传完文件后再打开上传文件界面显示取消按钮
git 取消文件跟踪
git rm --cached readme1.txt    删除readme1.txt的跟踪,并保留在本地。
西湖醋鱼
2020/12/30
1.5K0
pycharmimport时找不到指定文件_pycharm系统找不到指定文件
Error running ‘hello’: Cannot run program “B:\pystudy\venv\Scripts\python.exe” (in directory “\python-study”): CreateProcess error=2, 系统找不到指定的文件。
全栈程序员站长
2022/09/27
5.7K0
pycharmimport时找不到指定文件_pycharm系统找不到指定文件
git 取消托管文件
如果想要取消托管某文件夹,通过如下命令能解决: git rm -r --cached .idea #--cached不会把本地的.idea删除 git commit -m '描述信息' git push -u origin master
week
2019/08/14
2.6K0
git取消跟踪文件
取消跟踪文件: $git rm --cached FILENAME 取消跟踪目录: $git rm --cached FILENAME -r   最佳解决方案: 先清空,再加回来。 git rm -r --cached . #删除追踪状态 git add . git commit -m "fixed untracked files"
Ryan-Miao
2018/03/13
7540
JavaScript实现显示时间,暂停时间,和取消显示时间
//显示时间函数 var id;//设置该id主要是为了之后的暂停和取消显示时间用到clearInterval(这里传id); function showTime(){ var divOne=document.getElementById("one"); var d=new Date(); var timStr=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+ d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+":"+d.getMilliseconds(); divOne.innerHTML=timStr; id=setInterval(function(){ d=new Date(); timStr=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+ d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()+":"+d.getMilliseconds(); divOne.innerHTML=timStr; }, 1) }
小小鱼儿小小林
2020/06/23
2.3K0
点击显示错误
双折线点击一个,另一显示a b 错误.PNG 正确.PNG 隐藏一条线 tooltip: { // 气泡 trigger: "axis"
用户4344670
2019/08/28
1.2K0
点击显示错误
小程序开发找不到appjson_appjson文件内容错误未找到
– 问题原因: 导入微信开发者工具后project.config.json文件被微信开发者工具修改,缺少代码:“miniprogramRoot”: “./dist”从而导致微信开发者工具无法找到app.json文件进而报错:app.json: app.json 未找到,所以需要找到app.json 文件所在的文件夹,然后在project.config.json文件里写上aap.json的路径重新运行即可。
全栈程序员站长
2022/11/04
3.1K0
小程序开发找不到appjson_appjson文件内容错误未找到
Typecho评论回复取消回复按钮合并显示
第一步屏蔽默认评论js 将header.php中的header(); ?>改为header('commentReply='); ?> 第二步放置重构的js代码 将下面的一堆js代码放到comment
泽泽社长
2023/04/17
1.2K0
Typecho评论回复取消回复按钮合并显示
「R」显示英文错误
中文使用 R 经常看到各种乱码文字,让人看不懂意思,特别是在 Windows 系统上。
王诗翔呀
2020/07/02
1.8K0
CMD批处理——forfiles命令使用,自动删除过期备份文件
公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服务器去手工删除那些老的文件,有时忘记了就会导致硬盘空间不足而无法备份。 因为只要保留最近几天的备份,如果可以做一个批处理让系统自动删除老备份文件就好了,但是Windows的命令行和Linux的Shell比起来功能差了很多,到底行不行我自己也不清楚。 于是上网查了一下各位大虾发的帖子,再经过自己的摸索和尝试,发现只要花点功夫还是能实现这个功能的。 Windows Server 2003内置的命令行文件,适合于XP以上系统 示例:
landv
2018/05/24
4.4K0
点击加载更多

相似问题

找不到AngularJS映像取消显示错误

11

删除文件夹时出现forfiles错误

313

Forfiles -排序文件

20

Output forfiles错误到变量

04

找不到P4取消搁置文件错误

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文