当前位置: 首页 > 知识库问答 >
问题:

当响应太大时,Jolokia崩溃

糜宜民
2023-03-14

我正在安装Jolokia的tomcat上运行这个。

http://myserver/jolokia/read/Catalina:type=ThreadPool,name=*/

我得到的是这个

{"error_type":"javax.management.运行时操作异常","错误":"javax.management.运行时操作异常:异常调用方法readBufsize","状态": 500,"stackTrace":"javax.management.运行时操作异常:异常调用方法readBufsize\n\tatorg.apache.tomcat.util.modeler.BaseModelMBean.get属性(BaseModelMBean.java:197)\n\tatcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.get属性(DefaultMBeanServerInterceptor.java:647)\n\tatcom.sun.jmx.mbeanserver.JmxMBeanServer.get属性(JmxMBeanServer.java:678)\n\tatorg.jolokia.handler.ReadHandler.get属性(ReadHandler.java:208)\n\tatorg.jolokia.handler.ReadHandler.fetch属性(ReadHandler.java:158)\n\tatorg.jolokia.handler.ReadHandler.fetch属性ForMBeanPattern(ReadHandler. java: 97)\n\tat org. jolokia. handler。java: 82)\n\tat org. jolokia. handler。java: 34)\n\tat org. jolokia. handler。处理请求(JsonResestHandler. java: 150)\n\tat org. jolokia. backend。请求(MBeanServerHandler. java: 91)\n\tat org. jolokia. backend。java: 81)\n\tat org. jolokia. backend.BackendManager. call请求调度程序(BackendManager. java: 196)\n\tat org. jolokia. backend。BackendManager. handleRequest(BackendManager. java: 175)\n\tat org. jolokia. http.java: 150)\n\tat org. jolokia. http.java: 79)\n\tat org. jolokia. http.处理请求(AgentServlet. java: 239)\n\tat org. jolokia. http.处理(AgentServlet. java: 200)\n\tat org. jolokia. http.AgentServlet. doget(AgentServlet. java: 183)\n\tat javax. servlet. http.服务(HttpServlet. java: 621)\n\tat javax. servlet. http.服务(HttpServlet. java: 728)\n\tat org. apache. catalina. core。Application ationFilterChain. interalDoFilter(Application ationFilterChain. java: 305)\n\tat org. apache. catalina. core。应用过滤链. doFilter(应用过滤链. java: 210)\n\tat org. apache. tomcat. webocket. server。wsFilter. doFilter(WsFilter. java: 51)\n\tat org. apache. catalina. core。ApationFilterChain. interalDoFilter(Application ationFilterChain. java: 243)\n\tat org. apache. catalina. core。应用过滤链. doFilter(应用过滤链. java: 210)\n\tat org. apache. catalina. core。\n\tat org. apache. catalina. core.\n\tat org. apache. catalina.验证器。java: 502\n\tat org. apache. catalina. core.常备阀门. invoke(常备阀门. java: 171)\n\tat org. apache. catalina. valves。错误报告阀门. invoke(错误报告阀门. java: 100)\n\tat org. apache. catalina. core。 并发。threadpoolexecutor.="" runworker(threadpoolexecutor.="" 1145)\n\tat="" utilt.并发。线程池执行器$worker.="" run(线程池执行器.="" 615)\n\tat="" lang。线程.="" run(thread.="" 744)\n引起:java.="" lang.\n\tat="" net。java:="" 239\n\tat="" net.nioendpoint.="" getreadbufsize(nioendpoint.="" 619)\n\tat="" sun.反射。nativemethod="" odaccessorimp.="" invke0(本机方法)\n\tat="" sun.反射。nativemedaccessorinp.="" invoke(nativemedaccessorinp.="" 57)\n\tat="" sun.反射。委托方法访问或inp.="" invoke(委托方法访问或inp.="" 43)\n\tat="" lang.反射。\n\tat="" modeler.##################################################################################################################<="">

看起来Jolokia无法处理大量的回应。我能解决这个问题吗?我只需要几个属性,但我不知道如何在一个请求中获得两个属性。

这是我的jolokia版本

{“时间戳”:1405453600,“状态”:200,“请求”:{“类型”:“版本”},“值”:{“协议”:“5.0”,“代理”:“0.95”,“信息”:{“产品”:“tomcat”,“供应商”:“Apache”,“版本”:“7.0.47”}

共有1个答案

秦时铭
2023-03-14

这可能不是完整的堆栈跟踪。这并不是说Jolokia不能处理大型对象(如果有问题,那就是你的服务器容器),因为你会得到完整的响应。原因(隐藏在38 more中)是方法getReadBufsize抛出异常。

不过,您有两个选择:

  • 使用查询参数ignoreErrors=true,如果执行这样的批量请求,该参数非常有用
 类似资料:
  • 我们最近从springfox迁移到springdoc openapi 3。其中一个API返回大约2MB的数据,它在springfox中正常工作,但是springdoc openapi用户界面在几分钟内没有响应,渲染也需要2分钟以上。有什么办法可以解决吗?

  • 我最近开始在registfit/okhttp上遇到问题。每当应用程序执行一个请求时,它就会崩溃,并出现错误:

  • 我将cxf库用于web服务客户端。 当响应延迟了大约5秒时,cxf需要大约20秒来返回响应。ws返回33912长响应。 不过,客户对快速响应没有问题。 我找不到问题所在。我测试了wsendpoint,它在8秒内返回最大值。但cxf客户端有时需要30-50秒。 我打开了调试日志,这两行之间需要9秒 2018-01-11 17:17:14.022调试10492--[nio-8086-exec-6]o.

  • 问题内容: 在调试用于移动Safari的Web应用程序时遇到了一个问题。该Web应用程序是相当复杂的服务器端仿真工具的前端。Web应用程序的工作原理概述如下: 向用户显示一个屏幕,在屏幕上他们填写要执行的模拟的值。 用户单击“运行模拟”,此时将对服务器进行AJAX调用。页面上的状态窗格将更新,指示正在运行模拟。一个php脚本使用POSTed值运行模拟器,并发送回一些javascript以首先更新状

  • 问题内容: 我需要做一个svg导出png图像功能。首先,我也生成了具有base64标头类型的svg到base64 ,然后 我的/ 可能很大。 当我使用它返回。当/ 更合理时,结果正确。 有什么好办法解决这个问题吗?还是使用javascript从转换为.png? 问题答案: Canvas元素的最大大小在浏览器实现中会有所不同。您可以在此Q / A中 找到这些最大尺寸的良好列表。 它们对导出方法也有限

  • Jolokia 是一个用来访问远程 JMX MBeans 的崭新方法,与 JSR-160 连接器不同的是,它使用基于 HTTP 的 JSON 格式作为通讯协议,提供 JMX 批量操作等。