You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Victor Rentea (JIRA)" <ji...@apache.org> on 2010/01/27 11:27:35 UTC

[jira] Commented: (AXIS2-4151) JAXWS service with unwrapped parameters can only be called once.

    [ https://issues.apache.org/jira/browse/AXIS2-4151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805456#action_12805456 ] 

Victor Rentea commented on AXIS2-4151:
--------------------------------------

I ran into the same problem, and I want to share some of my observations. I must say I am no advanced user of Axis2.
Environment: axis2 1.5.1
JAX-WS service deployed as a jar in servicejars

when I specfy a soapAction in there

<binding name="VersionPortBinding" type="tns:VersionSEI">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
		<operation name="getVersion">
			<soap:operation  soapAction="http://caca"/>
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
		</operation>
	</binding>

when I invoke the service i get 
javax.xml.bind.UnmarshalException: unexpected element (uri:"http://messages.jaxws.sample/", local:"getVersion"). Expected elements are (none)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:609)


When I remove that soapAction attribute, the exception does not appear any more. (in the HTTP header the SOAPAction header value is "")

> JAXWS service with unwrapped parameters can only be called once.
> ----------------------------------------------------------------
>
>                 Key: AXIS2-4151
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4151
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>    Affects Versions: 1.4.1
>         Environment: AXIS2 1.4.1
> JAXWS RI 2.1.1
> JDK 1.6 Update 10
>            Reporter: Thomas Reuhl
>            Priority: Minor
>         Attachments: WrappedTest.jar, WrappedTest.wsdl, WrappedTest2.jar
>
>
> A jaxws-service using unwrapped parameters can only be called once successfully. It 
> produces an error on all subsequent requests (see section Exception and attached file Exception.txt).
> Creating the service uinsg the wrapped style works all the time.
> To reproduce (or simply deploy the two service jars in the servicejars directory):
> - Use wsimport of the jaxws reference implementation to produce two webservices from the
>   wsdl below.
> - For the one using parameter unwrapping use a customization file with the following content:
> <bindings
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>     wsdlLocation="http://localhost:8085/test/WrappedTest.wsdl"
>     xmlns="http://java.sun.com/xml/ns/jaxws">
>     <enableWrapperStyle>true</enableWrapperStyle>
> </bindings>
> - For the not one using wrapped parameters use a customization file with the following content:
> <bindings
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>     wsdlLocation="http://localhost:8085/test/WrappedTest.wsdl"
>     xmlns="http://java.sun.com/xml/ns/jaxws">
>     <enableWrapperStyle>false</enableWrapperStyle>
> </bindings>
> - Create an annotated impelementation.
> - Deploy both jars in the servicejars directory.
> WSDL
> =====
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions name="Messages"
> 	targetNamespace="http://services.test.tom.com"
> 	xmlns:tns="http://services.test.tom.com"
> 	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>     xmlns="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:xs="http://www.w3.org/2001/XMLSchema">
>     
>     <types>
> 		<xs:schema
> 			targetNamespace="http://services.test.tom.com"
> 			xmlns="http://services.test.tom.com"
> 			elementFormDefault="qualified">
> 			<xs:element name="LoadMessage" type="LoadMessage"/>
> 			<xs:complexType name="LoadMessage">
> 				<xs:sequence>
> 					<xs:element name="messageID" type="xs:long"/>
> 				</xs:sequence>
> 			</xs:complexType>
> 			<xs:element name="Message" type="Message"/>
> 			<xs:complexType name="Message">
> 				<xs:sequence>
> 					<xs:element name="content" type="xs:string"/>
> 				</xs:sequence>
> 			</xs:complexType>
> 		</xs:schema>
> 		
> 	</types>
> 	
> 	<message name="LoadMessageRequest">
> 		<part name="filter" element="tns:LoadMessage"/>
> 	</message>
> 	<message name="LoadMessageResponse">
> 		<part name="return" element="tns:Message"/>
> 	</message>
> 	
> 	<portType name="Messages">
> 		<operation name="LoadMessage">
> 			<input name="LoadMessageRequestPT" message="tns:LoadMessageRequest"/>
> 			<output name="LoadMessageResponsePT" message="tns:LoadMessageResponse"/>
> 		</operation>
> 	</portType>
> 	
> 	<binding name="MessagesBinding" type="tns:Messages">
> 		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
> 		
> 		<operation name="LoadMessage">
> 			<soap:operation soapAction="LoadMessage" style="document"/>
> 			<input name="LoadMessageRequestPT">
> 				<soap:body use="literal"/>
> 			</input>
> 			<output name="LoadMessageResponsePT">
> 				<soap:body use="literal"/>
> 			</output>
> 		</operation>
> 	</binding>
> 	
> 	<service name="MessagesService">
> 		<port name="Messages" binding="tns:MessagesBinding">
> 			<soap:address location="http://127.0.0.1:5555/ws/wsdl:Messages"/>
> 		</port>
> 	</service>
> </definitions>
> EXCEPTION
> ==========
> [ERROR] javax.xml.bind.UnmarshalException
>  - with linked exception:
> [javax.xml.bind.UnmarshalException: unexpected element (uri:"http://services.test.tom.com", local:"LoadMessage"). Expected elements are (none)]
> org.apache.axis2.AxisFault: javax.xml.bind.UnmarshalException - with linked exception:
> [javax.xml.bind.UnmarshalException: unexpected element (uri:"http://services.test.tom.com", local:"LoadMessage"). Expected elements are (none)]
>         at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>         at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:220)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
>         at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReq
> uest(HTTPTransportUtils.java:275)        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>         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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:818)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.xml.ws.WebServiceException: javax.xml.bind.UnmarshalException - with linked exception:
> [javax.xml.bind.UnmarshalException: unexpected element (uri:"http://services.test.tom.com", local:"LoadMessage"). Expected elements are (none)]
>         at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175)
>         at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
>         at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128)
>         at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:217)
>         ... 17 more
> Caused by: javax.xml.bind.UnmarshalException - with linked exception:
> [javax.xml.bind.UnmarshalException: unexpected element (uri:"http://services.test.tom.com", local:"LoadMessage"). Expected elements are (none)]
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:421)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:330)
>         at org.apache.axis2.datasource.jaxb.JAXBDSContext$4.run(JAXBDSContext.java:693)
>         at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:76)
>         at org.apache.axis2.datasource.jaxb.JAXBDSContext.unmarshalByElement(JAXBDSContext.java:690)
>         at org.apache.axis2.datasource.jaxb.JAXBDSContext.unmarshal(JAXBDSContext.java:243)
>         at org.apache.axis2.datasource.jaxb.JAXBCustomBuilder.create(JAXBCustomBuilder.java:80)
>         at org.apache.axiom.om.impl.builder.StAXOMBuilder.createWithCustomBuilder(StAXOMBuilder.java:291)
>         at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:178)
>         at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:172)
>         at org.apache.axiom.soap.impl.llom.SOAPBodyImpl.buildNext(SOAPBodyImpl.java:171)
>         at org.apache.axiom.om.impl.llom.OMNodeImpl.getNextOMSibling(OMNodeImpl.java:141)
>         at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstElement(OMElementImpl.java:961)
>         at org.apache.axiom.soap.impl.llom.SOAPBodyImpl.getFirstElementLocalName(SOAPBodyImpl.java:220)
>         at org.apache.axiom.soap.impl.llom.SOAPBodyImpl.hasFault(SOAPBodyImpl.java:99)
>         at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.hasFault(SOAPEnvelopeImpl.java:262)
>         at org.apache.axis2.jaxws.message.util.MessageUtils.getMessageFromMessageContext(MessageUtils.java:177)
>         at org.apache.axis2.jaxws.core.MessageContext.<init>(MessageContext.java:101)
>         at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:114)
>         ... 17 moreCaused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://services.test.tom.com", local:"LoadMessage"). Expected elements are (none)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:603)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:244)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:239)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1009)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:446)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:427)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.MTOMDecorator.startElement(MTOMDecorator.java:107)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:275)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:209)
>         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
>         ... 35 more
> Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://services.test.tom.com", local:"LoadMessage"). Expected elements are (none)
>         ... 46 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.