作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在 tomcat 上部署了一个 GWT 应用程序,使用几个小时后(2 个 QA 执行一般测试),java 进程开始使用所有 CPU,应用程序变慢。
我查看了 tomcat 管理器,发现有许多长时间运行的 HTTP 请求,它们都指向“/gwtRequest”,这是我们的 RequestFactory servlet。
之后我进行了线程转储,发现转储中的所有 RUNNABLE http 线程都指向“AutoBeanCodexImpl.doCoderFor()”
"http-8080-51" daemon prio=10 tid=0x00007f23d8b81800 nid=0x4981 runnable [0x00007f23d4285000]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(HashMap.java:303)
at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.doCoderFor(AutoBeanCodexImpl.java:519)
at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.setProperty(AbstractAutoBean.java:276)
at com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.setProperty(ProxyAutoBean.java:253)
at com.google.web.bindery.autobean.vm.impl.BeanPropertyContext.set(BeanPropertyContext.java:44)
at com.google.web.bindery.requestfactory.server.Resolver$PropertyResolver.visitValueProperty(Resolver.java:155)
at com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:289)
at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166)
at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101)
at com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:414)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:493)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:235)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:137)
at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)
有人可以指点我应该看的地方吗?谢谢
最佳答案
啊,哎哟!看起来我们正在使用没有任何同步的静态 HashMap
!我相信这是因为 AutoBeans 最初设计为仅在浏览器中工作,它是单线程的。
这是 fixed in trunk它应该make it into 2.5.0-rc2几天后发布。您可以追踪the issue状态。
关于java - RequestFactory 请求 (AutoBeanCodexImpl.doCoderFor) 永远不会完成并使用 100% cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12403658/
我们在 tomcat 上部署了一个 GWT 应用程序,使用几个小时后(2 个 QA 执行一般测试),java 进程开始使用所有 CPU,应用程序变慢。 我查看了 tomcat 管理器,发现有许多长时间
我是一名优秀的程序员,十分优秀!