[
http://jira.codehaus.org/browse/XFIRE-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tomasz Sztelak closed XFIRE-244.
--------------------------------
Assignee: Tomasz Sztelak (was: Mika Goeckel)
Resolution: Won't Fix
> Annotation specifying "wrapped" not recognized by XFire :: @SOAPBinding(...
> parameterStyle = ParameterStyle.WRAPPED)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: XFIRE-244
> URL: http://jira.codehaus.org/browse/XFIRE-244
> Project: XFire
> Issue Type: Bug
> Affects Versions: 1.0-RC
> Environment: JARS
> ---------------
> acegi-security-0.9.0.jar
> activation-1.0.2.jar
> antlr-2.7.5.jar
> asm-1.5.3.jar
> asm-attrs-1.5.3.jar
> beehive-controls-1.0.jar
> beehive-netui-core-1.0.jar
> beehive-netui-tags-1.0.jar
> cglib-2.1.jar
> classes12-8.1.9.jar
> commons-beanutils-1.7.0.jar
> commons-codec-1.3.jar
> commons-collections-3.1.jar
> commons-digester-1.5.jar
> commons-discovery-0.2.jar
> commons-el-1.0.jar
> commons-fileupload-1.0.jar
> commons-httpclient-3.0.jar
> commons-logging-1.0.4.jar
> commons-validator-1.1.4.jar
> dom4j-1.6.jar
> ehcache-1.1.jar
> hibernate-3.0.5.jar
> hsqldb-1.8.0.1.jar
> ibatis2-common-2.1.6.589.jar
> ibatis2-dao-2.1.6.589.jar
> ibatis2-sqlmap-2.1.6.589.jar
> jaxb-api-20051106.jar
> jaxb-impl-20051106.jar
> jaxb-xjc-20051106.jar
> jaxen-1.1-beta-8.jar
> jdom-1.0.jar
> jstl-1.1.2.jar
> log4j-1.2.9.jar
> mailapi-1.3.2.jar
> oro-2.0.8.jar
> p6spy-1.3.jar
> spring-1.2.6.jar
> standard-1.1.2.jar
> stax-api-1.0.jar
> struts-1.2.7.jar
> wsdl4j-1.4.jar
> wsm-1.0-alpha.jar
> wstx-lgpl-2.8.jar
> xbean-2.1.0.jar
> xbean-spring-2.0.jar
> xbean_xpath-2.1.0.jar
> xfire-all-1.0-SNAPSHOT.jar
> xmlpublic-2.1.0.jar
> XmlSchema-20051110.jar
> SERVERS
> -----------------
> BEA WebLogic 9.0 or Tomcat 5.5.12
> Reporter: Matt Vincent
> Assigned To: Tomasz Sztelak
>
> I pass the same XSD element "request" to all of my web service methods.
> However, each web service method accepts a different XSD type of "request".
> In XMLBeans, the XSD described above creates this heirarchy:
> _public abstract interface mycompany.RequestDocument implements XMLObject_
> _mycompany.Request getRequest();_
> _void setRequest(mycompany.Request request);_
> _public class RequestDocumentImpl implements mycompany.RequestDocument_
> _public abstract interface mycompany.RequestSubclass implements
> mycompany.Request_
> In the web service implementation class, I get the request like this:
> _public ResponseDocument getMethod(RequestDocument request) throws XFireFault
> {_
> _RequestSubclass myRequest = (RequestSubclass ) request.getRequest();_
> ...
> The Document/Literal Wrapped xfire web services do not include the web
> service operation name in the request as specified here:
> <http://www-106.ibm.com/developerworks/webservices/library/ws-whichwsdl/>
> I should see my SOAP request change from:
> <req:request xsi:type="*req:GetMethod*"
> xmlns:req="http://mycompany/service/request"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <page>1</page>
> <limit>1</limit>
> <id>10</id>
> <typeId>100</typeId>
> </req:request>
> to this:
> <req:request xsi:type="*req:GetMethod*"
> xmlns:req="http://mycompany/service/request"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> *<GetMethod>*
> <page>1</page>
> <limit>1</limit>
> <id>10</id>
> <typeId>100</typeId>
> *</GetMethod>*
> </req:request>
> however, this does not happen. Furthermore, I receive the following errors
> on the server:
> 2006-01-25 13:47:11,593 DEBUG [org.codehaus.xfire.transport.DefaultEndpoint]
> - <Fault occurred!>
> org.codehaus.xfire.fault.XFireFault: Parameter
> {http://mycompany/service/server}GetMethod does not exist!
> at
> org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:171)
> at
> org.codehaus.xfire.service.binding.DocumentBinding.readMessage(DocumentBinding.java:32)
> at
> org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:46)
> at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:97)
> at
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:58)
> at
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
> at
> org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:278)
> at
> In my SOAP implementation class, I've changed this:
> @SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle =
> *ParameterStyle.BARE*) --- which works great for a single method.
> to this:
> @SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle =
> *ParameterStyle.WRAPPED*)
> And I have also changed the dynamic XFire client code to specify wrapped as
> shown below:
> _TransportManager tm =
> (org.codehaus.xfire.XFireFactory.newInstance().getXFire().getTransportManager());_
> _AnnotationServiceFactory asf = new AnnotationServiceFactory(new
> Jsr181WebAnnotations(), tm, new AegisBindingProvider(new
> XmlBeansTypeRegistry()));_
> _asf.setBindingCreationEnabled(true);_
> _asf.setStyle("WRAPPED");_
> _service = asf.create((mycompany.ServiceImpl.class));_...
> How do I get doc/lit wrapped services to work properly?
> And why can't the doc/literal XML (specifying the type of request) tell you
> which method to invoke (see bold below)?
> <req:request xsi:type="*req:GetMethod*"
> xmlns:req="http://mycompany/service/request"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <page>1</page>
> <limit>1</limit>
> <id>10</id>
> <typeId>100</typeId>
> </req:request>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email