[JBoss JIRA] Created: (JBWS-1878) ConcurrentModificationException in JAXWS Handler when requests hit JBoss during application deployment
by Wojciech Kudla (JIRA)
ConcurrentModificationException in JAXWS Handler when requests hit JBoss during application deployment
------------------------------------------------------------------------------------------------------
Key: JBWS-1878
URL: http://jira.jboss.com/jira/browse/JBWS-1878
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-jaxws
Affects Versions: jbossws-2.0.1
Environment: AIX 5.3 ppc64, IBM JVM 9 (1.5.0), JBoss 4.2.1.GA with JBossWS 2.0.1.GA
Reporter: Wojciech Kudla
Priority: Critical
When SOAP requests hit JBoss during application deployment they are somewhat queued and get processed just after the application starts. Everything works fine if the are only several requests. If there are more (like 30 or above) before the application starts, HandlerResolverImpl causes ConcurrentModificationException at line 22 (getHandlerChain()).
This exception does not cause the application to stop working, but results in a very strange behaviour, namely: every request goes only through JAXWS Handler twice (on inbound and outbound traffic) but does not hit service implementation (in my case - EJB3 SLSB).
The only clue for me to resolve this problem was to stick to the ConcurrentModificationException and its stacktrace. Going down this path I decided to modify some code in class org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS. I synchronized a block of code responsible for initiating handler chains, so the modified method looks like this:
public boolean callRequestHandlerChain(ServerEndpointMetaData sepMetaData, HandlerType type)
{
log.debug("callRequestHandlerChain: " + type);
// Initialize the handler chain
if (isInitialized() == false)
{
synchronized(resolver) {
resolver.initHandlerChain(sepMetaData, HandlerType.PRE, true);
resolver.initHandlerChain(sepMetaData, HandlerType.ENDPOINT, true);
resolver.initHandlerChain(sepMetaData, HandlerType.POST, true);
setInitialized(true);
}
}
HandlerChainExecutor executor = createExecutor(sepMetaData, type);
MessageContext msgContext = (MessageContext)MessageContextAssociation.peekMessageContext();
return executor.handleMessage(msgContext);
}
I tried to do synchronized(this) at the beginning but it very quickly resulted in unstable AS behaviour and stopping JVM with a core dump in the end (SIC!).
Since we are talking about serious production deployment in 5 days (servicing ca. 5000 SOAP requests per hour) , I decided to incorporate my fix into the environment, but I am not completely sure wheter my fix imposes any performance pitfalls.
If you find a better idea to solve this problem, please be quick to publish a solution :)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 8 months
[JBoss JIRA] Created: (JBWS-2330) Failed to deploy service with multiple bindings
by Alessio Soldano (JIRA)
Failed to deploy service with multiple bindings
-----------------------------------------------
Key: JBWS-2330
URL: https://jira.jboss.org/jira/browse/JBWS-2330
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-cxf
Affects Versions: jbossws-cxf-3.0.3
Reporter: Alessio Soldano
When running the JBWS-2278 testcase:
16:22:43,869 ERROR [[/jaxws-jbws2278]] StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TestEndpointSoap12': Invocation of init method failed; nested exception is javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://org.jboss.test.ws/jbws2278}TestEndpointImplSoap12Service.
Caused by:
javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://org.jboss.test.ws/jbws2278}TestEndpointImplSoap12Service.
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:258)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:194)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:380)
at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.jboss.wsf.stack.cxf.CXFServletExt.loadAdditionalConfigExt(CXFServletExt.java:123)
at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:100)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:86)
at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:72)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://org.jboss.test.ws/jbws2278}TestEndpointImplSoap12Service.
at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:114)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:300)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:392)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:180)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114)
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:322)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:244)
... 34 more
16:22:43,869 ERROR [[TestEndpointSoap11]] Allocate exception for servlet TestEndpointSoap11
org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for service {http://org.jboss.test.ws/jbws2278}TestEndpointImplSoap12Service.
at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:114)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:300)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:392)
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:180)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:163)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:79)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114)
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:322)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:244)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:194)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:380)
at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.jboss.wsf.stack.cxf.CXFServletExt.loadAdditionalConfigExt(CXFServletExt.java:123)
at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:100)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:86)
at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:72)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 9 months
[JBoss JIRA] Created: (JBWS-2440) Get WebServiceException : No Content-type in the header! when Content-type: is set
by Dean Schulze (JIRA)
Get WebServiceException : No Content-type in the header! when Content-type: is set
----------------------------------------------------------------------------------
Key: JBWS-2440
URL: https://jira.jboss.org/jira/browse/JBWS-2440
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-3.0.4
Environment: Windows XP SP3, JBoss 5.0.0.GA (not the jdk6 version), Native Web Services stack 3.0.4 SP1, jdk1.6.0_10
I've copied the 4 jbossws-native*.jar files into the lib/endorsed dir.
Reporter: Dean Schulze
Priority: Critical
When a client invokes a method on a web service it throws a WebServiceException: No Content-type in the header! even though the Content-type: is set.
This same web service and client run properly when deployed on Glassfish V3 Prelude. (I have to remove the web.xml file from the .war to run on Glassfish, but otherwise everything is the same.)
Here's the client output (I've included the protocol output):
---[HTTP request - http://127.0.0.1:8080/credit.service/CreditService]---
Content-type: text/xml;charset="utf-8"
Soapaction: ""
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><creditCard xmlns="http://ns.soacookbook.com/credit"><cardNumber>4321456798762345</cardNumber><name><firstName>John</firstName><middleInitial>Q</middleInitial><lastName>Public</lastName></name><expirationDate>2010-01-10</expirationDate></creditCard></S:Body></S:Envelope>--------------------
---[HTTP response - http://127.0.0.1:8080/credit.service/CreditService - 200]---
null: HTTP/1.1 200 OK
Content-length: 0
X-powered-by: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Server: Apache-Coyote/1.1
Date: Sun, 28 Dec 2008 18:39:07 GMT
--------------------
Exception in thread "main" javax.xml.ws.WebServiceException: No Content-type in the header!
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:183)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:94)
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:116)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:112)
at com.sun.xml.xwss.XWSSClientPipe.process(XWSSClientPipe.java:160)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
at com.sun.xml.ws.client.Stub.process(Stub.java:222)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:135)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
at $Proxy36.authorize(Unknown Source)
at client.CreditServiceClient.main(CreditServiceClient.java:42)
The server side .log has this:
2008-12-28 12:00:17,892 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] (http-127.0.0.1-8080-2) handleWSDLRequest: jboss.ws:context=credit.service,endpoint=CreditService
2008-12-28 12:00:17,892 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] (http-127.0.0.1-8080-2) WSDL request, using host: 127.0.0.1
2008-12-28 12:00:19,674 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] (http-127.0.0.1-8080-2) doPost: /credit.service/CreditService
2008-12-28 12:00:19,674 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] (http-127.0.0.1-8080-2) handleRequest: jboss.ws:context=credit.service,endpoint=CreditService
2008-12-28 12:00:19,674 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] (http-127.0.0.1-8080-2) pushMessageContext: org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS@1fa1e7 (Thread http-127.0.0.1-8080-2)
2008-12-28 12:00:19,674 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] (http-127.0.0.1-8080-2) BEGIN handleRequest: jboss.ws:context=credit.service,endpoint=CreditService
2008-12-28 12:00:19,674 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] (http-127.0.0.1-8080-2) createMessage: [contentType=text/xml; charset=utf-8]
2008-12-28 12:00:19,674 DEBUG [org.jboss.ws.metadata.umdm.EndpointMetaData] (http-127.0.0.1-8080-2) Configure SOAPBinding
2008-12-28 12:00:19,674 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] (http-127.0.0.1-8080-2) SOAP request exception
java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:441)
at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:82)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:215)
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:479)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 9 months
[JBoss JIRA] Created: (JBWS-2405) MTOM/XOP Interoperability - cid href URLEncode/URLDecode
by Chyi Pin Lim (JIRA)
MTOM/XOP Interoperability - cid href URLEncode/URLDecode
--------------------------------------------------------
Key: JBWS-2405
URL: https://jira.jboss.org/jira/browse/JBWS-2405
Project: JBoss Web Services
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-3.0.4
Environment: 14:36:53,328 INFO [Server] Release ID: JBoss [Trinity] 4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)
14:36:56,109 INFO [ServerInfo] Java version: 1.5.0_14,Sun Microsystems Inc.
14:36:56,109 INFO [ServerInfo] Java VM: Java HotSpot(TM) Client VM 1.5.0_14-b03,Sun Microsystems Inc.
14:36:56,109 INFO [ServerInfo] OS-System: Windows XP 5.1,x86
14:37:27,656 INFO [NativeServerConfig] JBoss Web Services - Stack Native Core
14:37:27,656 INFO [NativeServerConfig] 3.0.4.GA
Reporter: Chyi Pin Lim
WCF uses a URL Encoded href cid for xopInclude. However, the Content-Id for the attachment is not URL Encoded. As such, JBossWS is unable to find the attachment.
Example:
<xop:Include href="cid:http%3A%2F%2Ftempuri.org%2F1%2F633631227250468750" xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
--uuid:357c6d9d-d6cf-42e3-bca5-75c8f3761934+id=1
Content-ID: <http://tempuri.org/1/633631227250468750>
Since this is an interoperability issue, I don't know how to create a test case under the test suite to simulate this error.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 9 months
[JBoss JIRA] Created: (JBWS-2166) WSA client handler throws exception when installing reference parameters
by Andrew Dinn (JIRA)
WSA client handler throws exception when installing reference parameters
------------------------------------------------------------------------
Key: JBWS-2166
URL: http://jira.jboss.com/jira/browse/JBWS-2166
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-3.0.1
Reporter: Andrew Dinn
WSAddressingClientHandler.handleOutbound in package org.jboss.ws.extensions.addressing.jaxws is throwing the following exception when inserting reference parameters into a reply:
10:52:44,104 ERROR [SOAPFaultHelperJAXWS] SOAP request exception
javax.xml.ws.WebServiceException: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
at org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.processHandlerFailure(HandlerChainExecutor.java:276)
at org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.handleMessage(HandlerChainExecutor.java:155)
at org.jboss.ws.core.jaxws.client.ClientImpl.callRequestHandlerChain(ClientImpl.java:191)
at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:298)
at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172)
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152)
at $Proxy93.soapFault(Unknown Source)
at com.arjuna.webservices11.wsaddr.client.SoapFaultClient.sendSoapFault(SoapFaultClient.java:72)
at com.arjuna.webservices11.wsat.client.ParticipantClient.sendSoapFault(ParticipantClient.java:150)
at com.arjuna.wst11.messaging.CoordinatorProcessorImpl.sendInvalidState(CoordinatorProcessorImpl.java:272)
at com.arjuna.wst11.messaging.CoordinatorProcessorImpl.prepared(CoordinatorProcessorImpl.java:176)
at com.arjuna.webservices11.wsat.sei.CoordinatorPortTypeImpl$1.executeTask(CoordinatorPortTypeImpl.java:61)
at com.arjuna.services.framework.task.TaskWorker.run(TaskWorker.java:65)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
at org.jboss.ws.core.soap.NodeImpl.appendChild(NodeImpl.java:477)
at org.jboss.ws.core.soap.SOAPHeaderImpl.appendChild(SOAPHeaderImpl.java:198)
at org.jboss.ws.core.soap.SOAPElementImpl.addChildElement(SOAPElementImpl.java:274)
at org.jboss.ws.core.soap.SOAPHeaderImpl.addChildElement(SOAPHeaderImpl.java:70)
at org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl.appendElement(SOAPAddressingPropertiesImpl.java:374)
at org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl.appendElements(SOAPAddressingPropertiesImpl.java:352)
at org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl.writeHeaders(SOAPAddressingPropertiesImpl.java:306)
at org.jboss.ws.extensions.addressing.jaxws.WSAddressingClientHandler.handleOutbound(WSAddressingClientHandler.java:113)
at org.jboss.ws.core.jaxws.handler.GenericHandler.handleMessage(GenericHandler.java:55)
at org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.handleMessage(HandlerChainExecutor.java:295)
at org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.handleMessage(HandlerChainExecutor.java:140)
... 13 more
The situation which manifests this problem is as follows:
Client A attaches WS AddressingProperties to a port for server B, It installs a ReplyTo epr whose address identifies server A. It attaches a reference parameter wsarj:identifier to the epr. Client A then invokes service B.
The implementation method of service B retrieves the request AddressingProperties from its message context and sets up a reply AddressingProperties instance by calling AddressingProperties.initializeAsReply. It obtains a port for service A, installs the reply properties on the port then invokes service A. The client handler under this invocation gets the error.
The problem is that the SOAP implementation does not copy the reference parameter Element instance when it tries to insert them into the outgoing message. intiializeAsReply retrieves these elements from the incoming context ReplyTo/FaultTo and adds them to the element extension list of the reply addressing context. The client handler calls SOAPAddressingHandlerImpl.writeHeaders to add these elements as headers in the outbound message. writeHeaders eventually calls SOAPHeaderImpl.addChildElement to add each reference parameter Element to the outgoing message header. addChildElement tests whether the Element is a SOAP element and, if so, assumes that it can be inserted directly into the outgoing message by calling appendElement. Unfortunately, the incoming reference parameters are associated with a dom node whose document is non-null and this barfs,claiming that someone is attempting a switcheroo on the document.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 10 months