简体   繁体   English

Weblogic在JAX-WS Client中卡住了线程

[英]Weblogic stuck thread in JAX-WS Client

My web application front end runs on its own dedicated weblogic server. 我的Web应用程序前端在其专用的weblogic服务器上运行。 My webservices are deployed on a different server machine, on weblogic. 我的Web服务部署在Weblogic上的其他服务器上。

I consume webservices this way: 我通过这种方式使用Web服务:

URL url = new URL("http://xxx:7001/corpevent/rightsservice?wsdl");
QName qname = new QName("http://corpevent.service.org/", "rightsservice");

Service service = Service.create(url, qname);
RightsIssueService ri = service.getPort(org.service.corpevent.RightsIssueService.class);
ri.callMethod();

It works fine, but sometimes I get stuck thread issues. 它工作正常,但有时会遇到线程问题。 I have tried to figure out how to stop it from happening but everything I've tried hasn't worked so far. 我试图弄清楚如何阻止它的发生,但是到目前为止,我尝试过的所有方法都没有奏效。

Here is the stack trace: 这是堆栈跟踪:

"[STUCK] ExecuteThread: '28' for queue: 'weblogic.kernel.Default (self-tuning)'" Id=138 BLOCKED on org.eclipse.persistence.jaxb.JAXBContext@bbec059 owned by "[STUCK] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" Id=67

  at org.eclipse.persistence.jaxb.JAXBContext.newContextState(JAXBContext.java:270)

  - blocked on org.eclipse.persistence.jaxb.JAXBContext@bbec059

  at org.eclipse.persistence.jaxb.JAXBContext.refreshMetadata(JAXBContext.java:255)

  at org.eclipse.persistence.jaxb.JAXBContext.jrCheckReload(JAXBContext.java)

  at org.eclipse.persistence.jaxb.JAXBContext.createMarshaller(JAXBContext.java)

  at com.sun.xml.ws.db.toplink.JAXBContextWrapper$1.newInstance(JAXBContextWrapper.java:85)

  at com.sun.xml.ws.db.toplink.JAXBContextWrapper$1.newInstance(JAXBContextWrapper.java:82)

  at com.sun.xml.ws.db.toplink.ObjectPool.allocate(ObjectPool.java:65)

  at com.sun.xml.ws.db.toplink.JAXBBond.marshal(JAXBBond.java:128)

  at com.sun.xml.ws.message.jaxb.JAXBHeader.writeTo(JAXBHeader.java:200)

  at com.sun.xml.ws.message.AbstractMessageImpl.writeToBodyStart(AbstractMessageImpl.java:178)

  at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:191)

  at com.sun.xml.ws.api.message.MessageWrapper.writeTo(MessageWrapper.java:226)

  at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:144)

  at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:242)

  at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:225)

  at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:145)

  at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:110)

  at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)

  at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)

  at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)

  at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)

  at com.sun.xml.ws.client.Stub.process(Stub.java:463)

  at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:191)

  at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)

  at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92)

  at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161)

  at com.sun.proxy.$Proxy147.queryClientCompanyRightsIssues(Unknown Source)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:497)

  at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:87)

  at com.sun.proxy.$Proxy145.queryClientCompanyRightsIssues(Unknown Source)

  at org.greenpole.services.clientcompany.rightsissue.RightsService.queryClientCompanyRightsIssues(RightsService.java:164)

  at org.greenpole.controller.clientcompany.RightsIssueController.getClientCompanyRightsIssueList(RightsIssueController.java:134)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke(Method.java:497)

  at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)

  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)

  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)

  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)

  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)

  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)

  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)

  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)

  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)

  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)

  at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)

  at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)

  at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)

  at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346)

  at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at weblogic.websocket.tyrus.TyrusServletFilter.doFilter(TyrusServletFilter.java:205)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)

  at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)

  at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:85)

  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)

  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)

  at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)

  at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)

  at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)

  at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)

  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)

  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436)

  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.__run(WebAppServletContext.java:3402)

  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java)

  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)

  at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)

  at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)

  at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)

  at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)

  at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)

  at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)

  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)

  at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

  Number of locked synchronizers = 1

  - java.util.concurrent.locks.ReentrantLock$NonfairSync@706cf33f

I read somewhere that JAX-WS isn't thread safe. 我在某处读到JAX-WS不是线程安全的。 Am I implementing it wrong, in my case? 就我而言,我实施错了吗?

The problem with this was the network connection between my front-end server and my middleware server (which holds the weblogic server). 问题是前端服务器和中间件服务器(装有weblogic服务器)之间的网络连接。 I got a new server, got VM Ware instead of the Hyper-V I was using, and everything's sorted. 我有一个新服务器,有VM Ware而不是我正在使用的Hyper-V,一切都整理好了。

The middleware application is installed on a RHEL (Red Hat Enterprise Linux) 中间件应用程序安装在RHEL(Red Hat Enterprise Linux)上

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM