I need the response soap envelop. you can use [1] to capture the request and the response. basically check whether your reponse is match to your schema.
[1] http://ws.apache.org/commons/tcpmon/ Amila. On 10/10/07, George H <[EMAIL PROTECTED]> wrote: > > Thank you for your response. > > Below is my WSDL file (I cut out the parts not dealing with my 2 > problematic methods. > Below that is the SOAP response. I think that is what you wanted? I > set the log4j properties to DEBUG on the client side and dumped the > output. > > Thank you. > > WSDL > ----- > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:axis2="http://ws.core.serv" > xmlns:ns1="http://org.apache.axis2/xsd" > xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" > xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" > xmlns:ns0="http://ws.core.serv/xsd" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" > targetNamespace="http://ws.core.serv"> > <wsdl:types> > <xs:schema xmlns:xsd="http://ws.core.tipsws/xsd" > attributeFormDefault="qualified" elementFormDefault="qualified" > targetNamespace="http://ws.core.serv/xsd"> > <xs:element name="getCustomClasses"> > <xs:complexType> > <xs:sequence> > <xs:element minOccurs="0" > name="GenericStructMessage" nillable="true" type="xs:base64Binary"/> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:element name="getCustomClassesResponse"> > <xs:complexType> > <xs:sequence> > <xs:element minOccurs="0" name="return" > nillable="true" type="xs:base64Binary"/> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:element name="getOtherCustomClasses"> > <xs:complexType> > <xs:sequence> > <xs:element minOccurs="0" name="GenericStruct" > nillable="true" type="xs:base64Binary"/> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:element name="getOtherCustomClassesResponse"> > <xs:complexType> > <xs:sequence> > <xs:element minOccurs="0" name="return" > nillable="true" type="xs:base64Binary"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:schema> > </wsdl:types> > <wsdl:message name="getOtherCustomClassesRequest"> > <wsdl:part name="parameters" element="ns0:getOtherCustomClasses"/> > </wsdl:message> > <wsdl:message name="getOtherCustomClassesResponse"> > <wsdl:part name="parameters" > element="ns0:getOtherCustomClassesResponse"/> > </wsdl:message> > <wsdl:message name="getCustomClassesRequest"> > <wsdl:part name="parameters" element="ns0:getCustomClasses"/> > </wsdl:message> > <wsdl:message name="getCustomClassesResponse"> > <wsdl:part name="parameters" > element="ns0:getCustomClassesResponse"/> > </wsdl:message> > <wsdl:portType name="CoreServicePortType"> > <wsdl:operation name="getOtherCustomClasses"> > <wsdl:input message="axis2:getOtherCustomClassesRequest" > wsaw:Action="urn:getOtherCustomClasses"/> > <wsdl:output message="axis2:getOtherCustomClassesResponse" > wsaw:Action="urn:getOtherCustomClassesResponse"/> > </wsdl:operation> > <wsdl:operation name="getCustomClasses"> > <wsdl:input message="axis2:getCustomClassesRequest" > wsaw:Action="urn:getCustomClasses"/> > <wsdl:output message="axis2:getCustomClassesResponse" > wsaw:Action="urn:getCustomClassesResponse"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="CoreServiceSOAP11Binding" > type="axis2:CoreServicePortType"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document"/> > <wsdl:operation name="getOtherCustomClasses"> > <soap:operation soapAction="urn:getOtherCustomClasses" > style="document"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="getCustomClasses"> > <soap:operation soapAction="urn:getCustomClasses" > style="document"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:binding name="CoreServiceSOAP12Binding" > type="axis2:CoreServicePortType"> > <soap12:binding > transport="http://schemas.xmlsoap.org/soap/http" style="document"/> > <wsdl:operation name="getOtherCustomClasses"> > <soap12:operation soapAction="urn:getOtherCustomClasses" > style="document"/> > <wsdl:input> > <soap12:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap12:body use="literal"/> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="getCustomClasses"> > <soap12:operation soapAction="urn:getCustomClasses" > style="document"/> > <wsdl:input> > <soap12:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap12:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:binding name="CoreServiceHttpBinding" > type="axis2:CoreServicePortType"> > <http:binding verb="POST"/> > <wsdl:operation name="getOtherCustomClasses"> > <http:operation location="CoreService/getOtherCustomClasses"/> > <wsdl:input> > <mime:content type="text/xml" > part="getOtherCustomClasses"/> > </wsdl:input> > <wsdl:output> > <mime:content type="text/xml" > part="getOtherCustomClasses"/> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="getCustomClasses"> > <http:operation location="CoreService/getCustomClasses"/> > <wsdl:input> > <mime:content type="text/xml" part="getCustomClasses"/> > </wsdl:input> > <wsdl:output> > <mime:content type="text/xml" part="getCustomClasses"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="CoreService"> > <wsdl:port name="CoreServiceSOAP11port_http" > binding="axis2:CoreServiceSOAP11Binding"> > <soap:address > location="http://localhost:8080/axis2/services/CoreService"/> > </wsdl:port> > <wsdl:port name="CoreServiceSOAP12port_http" > binding="axis2:CoreServiceSOAP12Binding"> > <soap12:address > location="http://localhost:8080/axis2/services/CoreService"/> > </wsdl:port> > <wsdl:port name="CoreServiceHttpport" > binding="axis2:CoreServiceHttpBinding"> > <http:address > location="http://localhost:8080/axis2/services/CoreService"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > > RESPONSE > ---- > INFO (ModuleDeployer.java:72) - Deploying module: addressing-1.3 > DEBUG (DefaultHttpParams.java:150) - Set parameter http.useragent = > Jakarta Commons-HttpClient/3.0.1 > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.protocol.version = HTTP/1.1 > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.connection-manager.class = class > org.apache.commons.httpclient.SimpleHttpConnectionManager > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.protocol.cookie-policy = rfc2109 > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.protocol.element-charset = US-ASCII > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.protocol.content-charset = ISO-8859-1 > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.method.retry-handler = > [EMAIL PROTECTED] > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.dateparser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, > dd-MMM-yy HH:mm:ss zzz, EEE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy > HH:mm:ss z, EEE, dd-MMM-yyyy HH-mm-ss z, EEE, dd MMM yy HH:mm:ss z, > EEE dd-MMM-yyyy HH:mm:ss z, EEE dd MMM yyyy HH:mm:ss z, EEE > dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy HH:mm:ss z, EEE dd MMM yy > HH:mm:ss z, EEE,dd-MMM-yy HH:mm:ss z, EEE,dd-MMM-yyyy HH:mm:ss z, EEE, > dd-MM-yyyy HH:mm:ss z] > DEBUG (HttpClient.java:71) - Java version: 1.6.0_02 > DEBUG (HttpClient.java:72) - Java vendor: Sun Microsystems Inc. > DEBUG (HttpClient.java:73) - Java class path: C:\Documents and > Settings\george\workspace-EE\serv\build\classes;C:\Sun\SDK\lib\appserv- > rt.jar > ;C:\Sun\SDK\lib\javaee.jar;C:\Sun\SDK\lib\mail.jar;C:\Sun\SDK\lib\appserv- > ws.jar;C:\Sun\SDK\lib\appserv-jstl.jar;C:\Sun\SDK\lib\appserv-tags.jar > ;C:\Sun\SDK\lib\activation.jar;Y:\axis2\codegen\annogen-0.1.0.jar > ;Y:\axis2\codegen\ant-1.7.0.jar;Y:\axis2\codegen\axiom-api-1.2.5.jar > ;Y:\axis2\codegen\axiom-dom-1.2.5.jar;Y:\axis2\codegen\axiom- > impl-1.2.5.jar;Y:\axis2\codegen\axis2-1.3.jar;Y:\axis2\codegen\commons- > codec-1.3.jar;Y:\axis2\codegen\commons-httpclient-3.0.1.jar > ;Y:\axis2\codegen\commons-logging-1.1.jar > ;Y:\axis2\codegen\geronimo-activation_1.1_spec-1.0-M1.jar > ;Y:\axis2\codegen\jibx-bind-1.1.5.jar;Y:\axis2\codegen\log4j-1.2.14.jar > ;Y:\axis2\codegen\neethi-2.0.2.jar;Y:\axis2\codegen\stax-api-1.0.1.jar > ;Y:\axis2\codegen\woden-1.0-incubating-M7b.jar;Y:\axis2\codegen\wsdl4j- > 1.6.2.jar;Y:\axis2\codegen\wstx-asl-3.2.1.jar;Y:\axis2\codegen\xbean- > 2.2.0.jar;Y:\axis2\codegen\XmlSchema-1.3.2.jar;Y:\serv\serv-common > .jar > DEBUG (HttpClient.java:74) - Operating system name: Windows XP > DEBUG (HttpClient.java:75) - Operating system architecture: x86 > DEBUG (HttpClient.java:76) - Operating system version: 5.1 > DEBUG (HttpClient.java:81) - SUN 1.6: SUN (DSA key/parameter > generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 > certificates; JKS keystore; PKIX CertPathValidator; PKIX > CertPathBuilder; LDAP, Collection CertStores, JavaPolicy Policy; > JavaLoginConfig Configuration) > DEBUG (HttpClient.java:81) - SunRsaSign 1.5: Sun RSA signature provider > DEBUG (HttpClient.java:81) - SunJSSE 1.6: Sun JSSE provider(PKCS12, > SunX509 key/trust factories, SSLv3, TLSv1) > DEBUG (HttpClient.java:81) - SunJCE 1.6: SunJCE Provider (implements > RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, PBE, > Diffie-Hellman, HMAC) > DEBUG (HttpClient.java:81) - SunJGSS 1.0: Sun (Kerberos v5, SPNEGO) > DEBUG (HttpClient.java:81) - SunSASL 1.5: Sun SASL > provider(implements client mechanisms for: DIGEST-MD5, GSSAPI, > EXTERNAL, PLAIN, CRAM-MD5; server mechanisms for: DIGEST-MD5, GSSAPI, > CRAM-MD5) > DEBUG (HttpClient.java:81) - XMLDSig 1.0: XMLDSig (DOM > XMLSignatureFactory; DOM KeyInfoFactory) > DEBUG (HttpClient.java:81) - SunPCSC 1.6: Sun PC/SC provider > DEBUG (HttpClient.java:81) - SunMSCAPI 1.6: Sun's Microsoft Crypto API > provider > DEBUG (DefaultHttpParams.java:150) - Set parameter > http.connection.timeout = 30000 > DEBUG (DefaultHttpParams.java:150) - Set parameter http.socket.timeout = > 30000 > DEBUG (DefaultHttpParams.java:150) - Set parameter http.socket.timeout = > 30000 > DEBUG (MultiThreadedHttpConnectionManager.java:390) - > HttpConnectionManager.getConnection: config = > HostConfiguration[host=http://appserv.company.com:8080], timeout = 0 > DEBUG (MultiThreadedHttpConnectionManager.java:739) - Allocating new > connection, hostConfig=HostConfiguration[host= > http://appserv.company.com:8080] > DEBUG (HttpConnection.java:691) - Open connection to > appserv.company.com:8080 > DEBUG (Wire.java:69) - >> "POST /axis2/services/CoreService > HTTP/1.1[\r][\n]" > DEBUG (HttpMethodBase.java:1235) - Adding Host request header > DEBUG (Wire.java:69) - >> "Content-Type: application/soap+xml; > charset=UTF-8; action="urn:getCustomClasses"[\r][\n]" > DEBUG (Wire.java:69) - >> "User-Agent: Axis2[\r][\n]" > DEBUG (Wire.java:69) - >> "Host: appserv.company.com:8080[\r][\n]" > DEBUG (Wire.java:69) - >> "Transfer-Encoding: chunked[\r][\n]" > DEBUG (Wire.java:69) - >> "[\r][\n]" > DEBUG (EntityEnclosingMethod.java:504) - Request body sent > DEBUG (Wire.java:69) - << "HTTP/1.1 200 OK[\r][\n]" > DEBUG (Wire.java:69) - << "X-Powered-By: Servlet/2.5[\r][\n]" > DEBUG (Wire.java:69) - << "Content-Type: application/soap+xml; > action="urn:getCustomClassesResponse";charset=UTF-8[\r][\n]" > DEBUG (Wire.java:69) - << "Transfer-Encoding: chunked[\r][\n]" > DEBUG (Wire.java:69) - << "Date: Wed, 10 Oct 2007 08:28:22 GMT[\r][\n]" > DEBUG (Wire.java:69) - << "Server: Sun Java System Application Server > Platform Edition 9.0_01[\r][\n]" > org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: > Unexpected subelement return > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417) > at serv.core.ws.CoreServiceStub.fromOM(CoreServiceStub.java:10032) > at serv.core.ws.CoreServiceStub.getCustomClasses( > CoreServiceStub.java:675) > at serv.core.client.CoreServiceClient.getCustomClasses( > CoreServiceClient.java:403) > at serv.core.client.CoreServiceClient.main(CoreServiceClient.java > :585) > Caused by: java.lang.Exception: > org.apache.axis2.databinding.ADBException: Unexpected subelement > return > at > serv.core.ws.CoreServiceStub$GetCustomClassesResponse$Factory.parse( > CoreServiceStub.java:7156) > at serv.core.ws.CoreServiceStub.fromOM(CoreServiceStub.java:9930) > ... 3 more > Caused by: org.apache.axis2.databinding.ADBException: Unexpected > subelement return > at > serv.core.ws.CoreServiceStub$GetCustomClassesResponse$Factory.parse( > CoreServiceStub.java:7152) > ... 4 more > > On 10/10/07, Amila Suriarachchi <[EMAIL PROTECTED]> wrote: > > Can you send your wsdl and response? > > > > > > On 10/9/07, George H <[EMAIL PROTECTED]> wrote: > > > > > > I have created a webservice and client using the Axis2 eclipse > > > plugin tools v1.3.0. Using Eclipse (J2EE) Version: 3.3.0 Build id: > > > I20070621-1340. > > > Axis2 v1.3 > > > > > > I have a webservice with many methods. Some reaturn boolean some > > > return an custom > > > class serialized as an array of bytes. They all work, except for all > the > > methods > > > that have only 1 thing in common. They both return a Vector of that > > > custom class. > > > That vector is serialized into bytes and sent back like all the > others, > > but it > > > always fails with "Unexpected subelement return" error. > > > > > > The wsdl file is generated by the tools and so are the stub classes. > > > Thanks in advance to anyone who can help me figure out the problem. > > > > > > The code calling the service > > > --- > > > Vector<CustomClass> customClasses = null; > > > > > > try { > > > byte[] barray = serializeToBytes(myMessage); > > > ByteArrayDataSource byteDataSource = new > > ByteArrayDataSource(barray); > > > DataHandler dh = new DataHandler(byteDataSource); > > > > > > CoreServiceStub.GetCustomClasses > > getCustomClassesParam = new > > > CoreServiceStub.GetCustomClasses(); > > > getCustomClassesParam.setCustomClass (dh); > > > > > > CoreServiceStub stub = new > > CoreServiceStub(TARGET_ENDPOINT); > > > CoreServiceStub.GetCustomClassesResponse response > > = > > > stub.getCustomClasses(getCustomClassesParam); > > > > > > DataHandler dh2 = response.get_return(); > > > Object obj = deserializeFromBytes(dh2); > > > if(obj instanceof Vector) { > > > customClasses = (Vector<CustomClass>)obj; > > > } > > > } > > > catch(Exception ex) { > > > ex.printStackTrace(); > > > } > > > > > > > > > > > > The stack trace, identical each time it is run. > > > --- > > > org.apache.axis2.AxisFault: > > org.apache.axis2.databinding.ADBException: > > > Unexpected subelement return > > > at > > org.apache.axis2.AxisFault.makeFault(AxisFault.java:417) > > > at > > serv.core.ws.CoreServiceStub.fromOM(CoreServiceStub.java:10032) > > > at > > serv.core.ws.CoreServiceStub.getCustomClasses(CoreServiceStub.java:675) > > > at > > > serv.core.client.CoreServiceClient.getCustomClasses.CoreServiceClient.java > :403) > > > at > > serv.core.client.CoreServiceClient.main(CoreServiceClient.java:583) > > > Caused by: java.lang.Exception: > > > org.apache.axis2.databinding.ADBException : Unexpected > > subelement > > > return > > > at > > serv.core.ws.CoreServiceStub$GetCustomClassesResponse$Factory.parse( > CoreServiceStub.java:7156) > > > at > > serv.core.ws.CoreServiceStub.fromOM(CoreServiceStub.java:9930) > > > ... 3 more > > > Caused by: org.apache.axis2.databinding.ADBException: > > Unexpected > > > subelement return > > > at > > serv.core.ws.CoreServiceStub$GetCustomClassesResponse$Factory.parse( > CoreServiceStub.java:7152) > > > ... 4 more > > > -- > > > George H > > > [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > -- > > Amila Suriarachchi, > > WSO2 Inc. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Amila Suriarachchi, WSO2 Inc.
