Hi, How did you get the all this threads blocked? Did you try to use one client to send one request to your server?
For your stack trace , it looks like there are some concurrent issues in the CacheMap. I think you need add some lock in your proxy object creating code, to create the proxy one by one for each thread. Willem jian wu wrote: > Hi, > > I'm running a WSDL2JAVA generated CXF WS Client in Tomcat 6.0.10 to > call external WS > for the incoming request. > > I'm using one Serivce Object to create one new port object for each WS > Call per thread, > it seems that, eventually all the http threads are blocked at: > > org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContext(JAXBDataBinding.java:530) > > I'm using CXF 2.1.1, the Tomcat Server is running on Linux with IBM > 64bit JVM. The > following is the thread dump snippet: > > 3LKMONOBJECT > org/apache/cxf/common/util/[EMAIL PROTECTED]/00000080D941B848: > Flat locked by "http-7101-2" (0x000000001129F300), entry count 1 > 3LKWAITERQ Waiting to enter: > 3LKWAITER "http-7101-1" (0x0000000010870F00) > 3LKWAITER "http-7101-3" (0x00000000112A5C00) > 3LKWAITER "http-7101-4" (0x00000000128C4300) > 3LKWAITER "http-7101-5" (0x00000000137B9D00) > 3LKWAITER "http-7101-6" (0x00000000137CAF00) > 3LKWAITER "http-7101-7" (0x00000000137DF000) > 3LKWAITER "http-7101-8" (0x00000000137EF200) > 3LKWAITER "http-7101-9" (0x0000000013800300) > 3LKWAITER "http-7101-10" (0x000000001335A600) > (... ...) > 3LKWAITER "http-7101-60" (0x0000000014797300) > > 3XMTHREADINFO "http-7101-2" (TID:0x000000001129F300, > sys_thread_t:0x0000000010862110, state:CW, native > ID:0x00000000000057CA) prio=5 > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/TypeInfoSetImpl.getElementInfo(TypeInfoSetImpl.java:275(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeTypeInfoSetImpl.getElementInfo(RuntimeTypeInfoSetImpl.java:102) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeTypeInfoSetImpl.getElementInfo(RuntimeTypeInfoSetImpl.java:59) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ReferencePropertyInfoImpl.addGenericElement(ReferencePropertyInfoImpl.java:196) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ReferencePropertyInfoImpl.calcTypes(ReferencePropertyInfoImpl.java:158(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ReferencePropertyInfoImpl.getElements(ReferencePropertyInfoImpl.java:112) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeReferencePropertyInfoImpl.getElements(RuntimeReferencePropertyInfoImpl.java:67) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ReferencePropertyInfoImpl.ref(ReferencePropertyInfoImpl.java:103) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeReferencePropertyInfoImpl.ref(RuntimeReferencePropertyInfoImpl.java:71) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeReferencePropertyInfoImpl.ref(RuntimeReferencePropertyInfoImpl.java:51) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getClassInfo(ModelBuilder.java:255(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:98) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:79) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getClassInfo(ModelBuilder.java:209) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:93) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:79) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getTypeInfo(ModelBuilder.java:315(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RegistryInfoImpl.<init>(RegistryInfoImpl.java:99) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.addRegistry(ModelBuilder.java:357(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getClassInfo(ModelBuilder.java:218(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:98) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:79) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getClassInfo(ModelBuilder.java:209) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:93) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:79) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getTypeInfo(ModelBuilder.java:315(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/TypeRefImpl.calcRef(TypeRefImpl.java:92) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/TypeRefImpl.getTarget(TypeRefImpl.java:69) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeTypeRefImpl.getTarget(RuntimeTypeRefImpl.java:58) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeTypeRefImpl.getTarget(RuntimeTypeRefImpl.java:51) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ElementPropertyInfoImpl$1.get(ElementPropertyInfoImpl.java:74) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ElementPropertyInfoImpl$1.get(ElementPropertyInfoImpl.java:77) > 4XESTACKTRACE at > java/util/AbstractList$Itr.next(AbstractList.java:437(Compiled Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getClassInfo(ModelBuilder.java:255(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:98) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:79) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getClassInfo(ModelBuilder.java:209) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:93) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:79) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getTypeInfo(ModelBuilder.java:315(Compiled > Code)) > 4XESTACKTRACE at > com/sun/xml/bind/v2/model/impl/ModelBuilder.getTypeInfo(ModelBuilder.java:330) > 4XESTACKTRACE at > com/sun/xml/bind/v2/runtime/JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:432) > 4XESTACKTRACE at > com/sun/xml/bind/v2/runtime/JAXBContextImpl.<init>(JAXBContextImpl.java:286) > 4XESTACKTRACE at > com/sun/xml/bind/v2/ContextFactory.createContext(ContextFactory.java:139) > 4XESTACKTRACE at > com/sun/xml/bind/v2/ContextFactory.createContext(ContextFactory.java:117) > 4XESTACKTRACE at > sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method) > 4XESTACKTRACE at > sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64(Compiled > Code)) > 4XESTACKTRACE at > sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43(Compiled > Code)) > 4XESTACKTRACE at > java/lang/reflect/Method.invoke(Method.java:615(Compiled Code)) > 4XESTACKTRACE at > javax/xml/bind/ContextFinder.newInstance(ContextFinder.java:211) > 4XESTACKTRACE at > javax/xml/bind/ContextFinder.find(ContextFinder.java:372) > 4XESTACKTRACE at > javax/xml/bind/JAXBContext.newInstance(JAXBContext.java:574) > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.createJAXBContext(JAXBDataBinding.java:532) > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.initialize(JAXBDataBinding.java:287) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:313) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:394) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:181) > 4XESTACKTRACE at > org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163) > 4XESTACKTRACE at > org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientFactoryBean.create(ClientFactoryBean.java:51) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:97) > 4XESTACKTRACE at > org/apache/cxf/jaxws/JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:93) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.createPort(ServiceImpl.java:369) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:247) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:234) > 4XESTACKTRACE at javax/xml/ws/Service.getPort(Service.java:40) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/adminedqueue/AdminEDQueueService.getAdminEDQueueServiceHttpPort(AdminEDQueueService.java:65) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.getAdminEDQueueServicePort(AdminEDQueueServiceClient.java:87) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.prefetchEDQueueForNewBox(AdminEDQueueServiceClient.java:91) > > 3XMTHREADINFO "http-7101-3" (TID:0x00000000112A5C00, > sys_thread_t:0x00000000108625E0, state:B, native > ID:0x00000000000057CB) prio=5 > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.createJAXBContext(JAXBDataBinding.java:530) > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.initialize(JAXBDataBinding.java:287) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:313) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:394) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:181) > 4XESTACKTRACE at > org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163) > 4XESTACKTRACE at > org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientFactoryBean.create(ClientFactoryBean.java:51) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:97) > 4XESTACKTRACE at > org/apache/cxf/jaxws/JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:93) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.createPort(ServiceImpl.java:369) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:247) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:234) > 4XESTACKTRACE at javax/xml/ws/Service.getPort(Service.java:40) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/adminedqueue/AdminEDQueueService.getAdminEDQueueServiceHttpPort(AdminEDQueueService.java:65) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.getAdminEDQueueServicePort(AdminEDQueueServiceClient.java:87) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.prefetchEDQueueForNewBox(AdminEDQueueServiceClient.java:91) > > (... ...) > > "http-7101-30" (TID:0x00000000131A6400, > sys_thread_t:0x000000001442D4A0, state:B, native > ID:0x0000000000004808) prio=5 > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.createJAXBContext(JAXBDataBinding.java:530(Compiled > Code)) > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.initialize(JAXBDataBinding.java:287) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:313) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:394) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:181) > 4XESTACKTRACE at > org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163) > 4XESTACKTRACE at > org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientFactoryBean.create(ClientFactoryBean.java:51) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:97) > 4XESTACKTRACE at > org/apache/cxf/jaxws/JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:93) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.createPort(ServiceImpl.java:369) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:247) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:234) > 4XESTACKTRACE at javax/xml/ws/Service.getPort(Service.java:40) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/adminedqueue/AdminEDQueueService.getAdminEDQueueServiceHttpPort(AdminEDQueueService.java:65) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.getAdminEDQueueServicePort(AdminEDQueueServiceClient.java:87) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.prefetchEDQueueForNewBox(AdminEDQueueServiceClient.java:91) > > (... ...) > > "http-7101-60" (TID:0x0000000014797300, > sys_thread_t:0x0000000014782D40, state:B, native > ID:0x0000000000004C25) prio=5 > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.createJAXBContext(JAXBDataBinding.java:530(Compiled > Code)) > 4XESTACKTRACE at > org/apache/cxf/jaxb/JAXBDataBinding.initialize(JAXBDataBinding.java:287) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:313) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:394) > 4XESTACKTRACE at > org/apache/cxf/service/factory/ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:181) > 4XESTACKTRACE at > org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163) > 4XESTACKTRACE at > org/apache/cxf/frontend/AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientFactoryBean.create(ClientFactoryBean.java:51) > 4XESTACKTRACE at > org/apache/cxf/frontend/ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:97) > 4XESTACKTRACE at > org/apache/cxf/jaxws/JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:93) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.createPort(ServiceImpl.java:369) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:247) > 4XESTACKTRACE at > org/apache/cxf/jaxws/ServiceImpl.getPort(ServiceImpl.java:234) > 4XESTACKTRACE at javax/xml/ws/Service.getPort(Service.java:40) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/adminedqueue/AdminEDQueueService.getAdminEDQueueServiceHttpPort(AdminEDQueueService.java:65) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.getAdminEDQueueServicePort(AdminEDQueueServiceClient.java:87) > 4XESTACKTRACE at > com/netflix/watchnow/wsclient/AdminEDQueueServiceClient.prefetchEDQueueForNewBox(AdminEDQueueServiceClient.java:91) > > > Is this a bug in CXF? Or I have to create new Service Object per Thread? > > Any suggestion or tip is really appreciated. > > Thanks a lot! > > Jian >
