[
https://issues.apache.org/jira/browse/AXIS2-4945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13007347#comment-13007347
]
isidro lopes commented on AXIS2-4945:
-------------------------------------
I experienced the same problem and realized that if you run WSDL2Java with the
option "-sp", the problem disappears. This approach can be an alternative route
until the real problem is resolved.
> Axis2 client Unexpected subelement apple
> ----------------------------------------
>
> Key: AXIS2-4945
> URL: https://issues.apache.org/jira/browse/AXIS2-4945
> Project: Axis2
> Issue Type: Bug
> Affects Versions: 1.5.4
> Environment: Axis2 1.5.4, Java 1.6, Tomcat 6
> Reporter: Carlos Martins
> Labels: Axis2, Unexpected, subelement
>
> I developed both a server and client application using Axis2 version 1.5.4,
> Java 1.6 and the server is deployed on tomcat 6. The services are declared
> using annotations, so there is no .aar files or anything of that sort. The
> WSDL was created automatically by Axis2. The client was made using the stubs
> and parameters generated by WSDL2Java using the command:
> %axis2_home%\bin\WSDL2Java -p com.audaxys.leaseclient.servicestub.generic -d
> adb -Eosv -s -g -u -uw -or -sp -S src/main/java -R src/main/resources
> --noBuildXML -uri %baseurl%/AppleFinderService.Rpc?wsdl
> When the client app calls the method public Apple loadApple(String appType)
> the server responds returning one instance of Apple class, but the client is
> unable to de-serialize the response and throws this exception.
> If you know how to fix this, could you please share it with me? Any clues
> would be greatly appreciated, really!
> Full stack trace:
> org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException:
> Unexpected subelement apple
> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
> at
> com.audaxys.leaseclient.servicestub.generic.AppleFinderServiceStub.fromOM(AppleFinderServiceStub.java:1015)
> at
> com.audaxys.leaseclient.servicestub.generic.AppleFinderServiceStub.loadApple(AppleFinderServiceStub.java:343)
> at
> com.audaxys.lease.ws.client.TestDummyServices.testLoadApple(TestDummyServices.java:107)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException:
> Unexpected subelement apple
> at
> com.audaxys.www.namespaces.leasews.LoadAppleResponse$Factory.parse(LoadAppleResponse.java:454)
> at
> com.audaxys.leaseclient.servicestub.generic.AppleFinderServiceStub.fromOM(AppleFinderServiceStub.java:981)
> ... 18 more
> Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement
> apple
> at
> com.audaxys.www.namespaces.leasews.LoadAppleResponse$Factory.parse(LoadAppleResponse.java:448)
> ... 19 more
> ServiceDeclaration
> package com.audaxys.lease.model.generic; import .....;
> @WebService(name="AppleFinderService", serviceName="AppleFinderService",
> portName="Rpc", targetNamespace="http://www.audaxys.com/namespaces/leasews")
> @SOAPBinding(style = Style.RPC, parameterStyle = ParameterStyle.WRAPPED)
> public class AppleFinderImpl {
> @WebResult(name = "apple")
> public Apple loadApple(String appType) {
> Apple a = new Apple();
> a.setAppleType(appType);
> return a;
> }
> }
> Apple class
> package com.audaxys.lease.model.generic;
> import javax.xml.bind.annotation.XmlRootElement;
> @XmlRootElement(namespace="http://www.audaxys.com/namespaces/leasews")
> public class Apple {
> private String appleType;
> public Apple() {
> super();
> }
> public String getAppleType() {
> return appleType;
> }
> public void setAppleType(String appleType) {
> this.appleType = appleType;
> }
> }
> WSDL
> <?xml version="1.0" encoding="UTF-8" ?>
> - <definitions name="AppleFinderService"
> targetNamespace="http://www.audaxys.com/namespaces/leasews"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://www.audaxys.com/namespaces/leasews"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:ns1="http://jaxb.dev.java.net/array">
> - <types>
> - <xsd:schema>
> <xsd:import namespace="http://www.audaxys.com/namespaces/leasews"
> schemaLocation="AppleFinderService.Rpc?xsd=AppleFinderService_schema1.xsd" />
> </xsd:schema>
> - <xsd:schema>
> <xsd:import namespace="http://jaxb.dev.java.net/array"
> schemaLocation="AppleFinderService.Rpc?xsd=AppleFinderService_schema2.xsd" />
> </xsd:schema>
> </types>
> - <message name="loadAppleResponse">
> <part name="apple" type="tns:apple" />
> </message>
> - <message name="getAppleArray">
> <part name="arg0" type="xsd:string" />
> </message>
> - <message name="loadApple">
> <part name="arg0" type="xsd:string" />
> </message>
> - <portType name="AppleFinderService">
> - <operation name="getAppleArray">
> <input message="tns:getAppleArray" />
> <output message="tns:getAppleArrayResponse" />
> </operation>
> - <operation name="loadApple">
> <input message="tns:loadApple" />
> <output message="tns:loadAppleResponse" />
> </operation>
> </portType>
> - <binding name="RpcBinding" type="tns:AppleFinderService">
> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
> - <operation name="getAppleArray">
> <soap:operation soapAction="" />
> - <input>
> <soap:body use="literal"
> namespace="http://www.audaxys.com/namespaces/leasews" />
> </input>
> - <output>
> <soap:body use="literal"
> namespace="http://www.audaxys.com/namespaces/leasews" />
> </output>
> </operation>
> - <operation name="loadApple">
> <soap:operation soapAction="" />
> - <input>
> <soap:body use="literal"
> namespace="http://www.audaxys.com/namespaces/leasews" />
> </input>
> - <output>
> <soap:body use="literal"
> namespace="http://www.audaxys.com/namespaces/leasews" />
> </output>
> </operation>
> </binding>
> - <service name="AppleFinderService">
> - <port name="Rpc" binding="tns:RpcBinding">
> <soap:address
> location="http://10.10.5.25:8080/lease.services/soap/services/AppleFinderService.Rpc/"
> />
> </port>
> </service>
> </definitions>
> XSD
> - <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://www.audaxys.com/namespaces/leasews"
> attributeFormDefault="unqualified" elementFormDefault="unqualified"
> targetNamespace="http://www.audaxys.com/namespaces/leasews">
> <xs:element name="apple" type="tns:apple" />
> - <xs:complexType name="apple">
> - <xs:sequence>
> <xs:element minOccurs="0" name="appleType" type="xs:string" />
> </xs:sequence>
> </xs:complexType>
> - <xs:complexType final="#all" name="appleArray">
> - <xs:sequence>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true"
> type="tns:apple" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> Request
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Body>
> <loadApple xmlns="http://www.audaxys.com/namespaces/leasews">
> <arg0>Red</arg0>
> </loadApple>
> </soapenv:Body>
> </soapenv:Envelope>
> Responsse
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> <soapenv:Body>
> <rpcOp:loadAppleResponse
> xmlns:rpcOp="http://www.audaxys.com/namespaces/leasews">
> <rpcOp:apple xmlns:ns3="http://com.audaxys.lease/" xmlns="">
> <appleType>Red</appleType>
> </rpcOp:apple>
> </rpcOp:loadAppleResponse>
> </soapenv:Body>
> </soapenv:Envelope>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]