(See attached file: deploy.wsdd)
"Sameer Bombatkar" To: [EMAIL PROTECTED] <[EMAIL PROTECTED] cc: il.com> Subject: Re: [axis] Serializing embedded complex types 06/26/2003 02:57 AM Please respond to axis-user Could you also post your deploy.wsdd and the class which all the operations for youre web-service?? Sameer. ..................................................... "If a server crashes in a server farm and no one pings it, does it still cost four figures to fix?" >From: [EMAIL PROTECTED] >Reply-To: [EMAIL PROTECTED] >To: <[EMAIL PROTECTED]> >Subject: [axis] Serializing embedded complex types >Date: Wed, 25 Jun 2003 15:51:18 -0600 >MIME-Version: 1.0 >Received: from apache.org ([208.185.179.12]) by mc7-f15.law1.hotmail.com >with Microsoft SMTPSVC(5.0.2195.5600); Wed, 25 Jun 2003 14:51:42 -0700 >Received: (qmail 78050 invoked by uid 500); 25 Jun 2003 21:51:16 -0000 >Received: (qmail 77992 invoked by uid 500); 25 Jun 2003 21:51:16 -0000 >X-Message-Info: JGTYoYF78jEHjJx36Oi8+Q1OJDRSDidP >Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm >Precedence: bulk >list-help: <mailto:[EMAIL PROTECTED]> >list-unsubscribe: <mailto:[EMAIL PROTECTED]> >list-post: <mailto:[EMAIL PROTECTED]> >Delivered-To: mailing list [EMAIL PROTECTED] >Delivered-To: [EMAIL PROTECTED] >X-Mailer: Lotus Notes Release 5.0.8 June 18, 2001 >Message-ID: <[EMAIL PROTECTED]> >X-MIMETrack: Serialize by Router on BoulderNotes2/SYBASE(Release 5.0.12 >|February 13, 2003) at 06/25/2003 03:51:18 PM >X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N >Return-Path: [EMAIL PROTECTED] >X-OriginalArrivalTime: 25 Jun 2003 21:51:43.0343 (UTC) >FILETIME=[F74E97F0:01C33B63] > >Has anyone had luck with embedded complex types with Axis. Taking the >Address example one step further, I have WSDL describes an address to have >a phone that is a complex type, such as: > > <EmployeeVO> > <firstName>John</firstName> > <lastName>Doe</lastName> > <phone> > <area>999</area> > <location>9999</location> > <prefix>999</prefix> > </phone> > </EmployeeVO> > >The WSDL, SOAP request, SOAP response and Java code follow. Basically, >AXIS cannot serialize the response because it interprets "EmployeeVO" as >containing "area"... > >============= WSDL ============== ><?xml version="1.0" encoding="UTF-8"?> ><wsdl:definitions targetNamespace="urn:OtherTestEJB" >xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" >xmlns:apachesoap="http://xml.apache.org/xml-soap" >xmlns:xsd="http://www.w3.org/2001/XMLSchema" >xmlns:tns1="http://util.test.sybase.com" xmlns:intf="urn:OtherTestEJB" >xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:OtherTestEJB" >xmlns="http://schemas.xmlsoap.org/wsdl/"> > <wsdl:types> > <schema xmlns="http://www.w3.org/2001/XMLSchema" >targetNamespace="http://util.test.sybase.com"> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> > <complexType name="EmployeeVO"> > <sequence> > <element name="firstName" nillable="true" type="xsd:string"/> > <element name="lastName" nillable="true" type="xsd:string"/> > <element name="phone" nillable="true" type="tns1:PhoneVO"/> > </sequence> > </complexType> > <complexType name="PhoneVO"> > <sequence> > <element name="area" nillable="true" type="xsd:string"/> > <element name="location" nillable="true" type="xsd:string"/> > <element name="prefix" nillable="true" type="xsd:string"/> > </sequence> > </complexType> > <element name="EmployeeVO" nillable="true" type="tns1:EmployeeVO"/> > </schema> > </wsdl:types> > > <wsdl:message name="noParmsOrReturnResponse"> > > </wsdl:message> > > <wsdl:message name="getEmployeeInfoRequest"> > > <wsdl:part name="employeeVO" type="tns1:EmployeeVO"/> > > </wsdl:message> > > <wsdl:message name="OverloadedTestRequest1"> > > <wsdl:part name="value" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="OverloadedTestResponse"> > > <wsdl:part name="OverloadedTestReturn" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="getEmployeeInfoResponse"> > > <wsdl:part name="getEmployeeInfoReturn" type="tns1:EmployeeVO"/> > > </wsdl:message> > > <wsdl:message name="twoParameterTestResponse"> > > <wsdl:part name="twoParameterTestReturn" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="twoParameterTestRequest"> > > <wsdl:part name="s1" type="xsd:string"/> > > <wsdl:part name="s2" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="noParmsOrReturnRequest"> > > </wsdl:message> > > <wsdl:message name="OverloadedTestResponse1"> > > <wsdl:part name="OverloadedTestReturn" type="xsd:string"/> > > </wsdl:message> > > <wsdl:message name="OverloadedTestRequest"> > > <wsdl:part name="value" type="xsd:int"/> > > </wsdl:message> > > <wsdl:portType name="OtherTestEJBImpl"> > > <wsdl:operation name="OverloadedTest" parameterOrder="value"> > > <wsdl:input name="OverloadedTestRequest" >message="intf:OverloadedTestRequest"/> > > <wsdl:output name="OverloadedTestResponse" >message="intf:OverloadedTestResponse"/> > > </wsdl:operation> > > <wsdl:operation name="OverloadedTest" parameterOrder="value"> > > <wsdl:input name="OverloadedTestRequest1" >message="intf:OverloadedTestRequest1"/> > > <wsdl:output name="OverloadedTestResponse1" >message="intf:OverloadedTestResponse1"/> > > </wsdl:operation> > > <wsdl:operation name="noParmsOrReturn"> > > <wsdl:input name="noParmsOrReturnRequest" >message="intf:noParmsOrReturnRequest"/> > > <wsdl:output name="noParmsOrReturnResponse" >message="intf:noParmsOrReturnResponse"/> > > </wsdl:operation> > > <wsdl:operation name="twoParameterTest" parameterOrder="s1 s2"> > > <wsdl:input name="twoParameterTestRequest" >message="intf:twoParameterTestRequest"/> > > <wsdl:output name="twoParameterTestResponse" >message="intf:twoParameterTestResponse"/> > > </wsdl:operation> > > <wsdl:operation name="getEmployeeInfo" parameterOrder="employeeVO"> > > <wsdl:input name="getEmployeeInfoRequest" >message="intf:getEmployeeInfoRequest"/> > > <wsdl:output name="getEmployeeInfoResponse" >message="intf:getEmployeeInfoResponse"/> > > </wsdl:operation> > > </wsdl:portType> > > <wsdl:binding name="AxisServletSoapBinding" >type="intf:OtherTestEJBImpl"> > > <wsdlsoap:binding style="rpc" >transport="http://schemas.xmlsoap.org/soap/http"/> > > <wsdl:operation name="OverloadedTest"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="OverloadedTestRequest"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:input> > > <wsdl:output name="OverloadedTestResponse"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="OverloadedTest"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="OverloadedTestRequest1"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:input> > > <wsdl:output name="OverloadedTestResponse1"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="noParmsOrReturn"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="noParmsOrReturnRequest"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:input> > > <wsdl:output name="noParmsOrReturnResponse"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="twoParameterTest"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="twoParameterTestRequest"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:input> > > <wsdl:output name="twoParameterTestResponse"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="getEmployeeInfo"> > > <wsdlsoap:operation soapAction=""/> > > <wsdl:input name="getEmployeeInfoRequest"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:input> > > <wsdl:output name="getEmployeeInfoResponse"> > > <wsdlsoap:body use="encoded" >encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >namespace="urn:OtherTestEJB"/> > > </wsdl:output> > > </wsdl:operation> > > </wsdl:binding> > > <wsdl:service name="OtherTestEJBImplService"> > > <wsdl:port name="AxisServlet" binding="intf:AxisServletSoapBinding"> > > <wsdlsoap:address >location="http://localhost:8090/axis/servlet/AxisServlet"/> > > </wsdl:port> > > </wsdl:service> > ></wsdl:definitions> > >============= SOAP REQUEST ============== > >POST /axis/servlet/AxisServlet HTTP/1.0 Content-Type: text/xml; >charset=utf-8 Accept: application/soap+xml, application/dime, >multipart/related, text/* User-Agent: Axis/1.0 Host: localhost:8090 >Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: >1073 <?xml version="1.0" encoding="UTF-8"?> ><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ " >xmlns:xsd="http://www.w3.org/2001/XMLSchema" >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <ns1:getEmployeeInfo >soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >xmlns:ns1="urn:OtherTestEJB"> > <ns1:employeeVO href="#id0"/> > </ns1:getEmployeeInfo> > <multiRef id="id0" soapenc:root="0" >soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >xsi:type="ns2:EmployeeVO" >xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >xmlns:ns2="http://util.test.sybase.com"> > <firstName xsi:type="xsd:string">John</firstName> > <lastName xsi:type="xsd:string">Doe</lastName> > <phone id="id0" soapenc:root="0" >soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >xsi:type="ns2:EmployeeVO"> > <area xsi:type="xsd:string">303</area> > <location xsi:type="xsd:string">4100</location> > <prefix xsi:type="xsd:string">413</prefix> > </phone> > </multiRef> > </soapenv:Body> ></soapenv:Envelope> > >============== SOAP Response ================ >HTTP/1.1 500 Internal Server Error Server: Jaguar Server Version 4.2 >Connection: Close Content-Type: text/xml; charset=utf-8 <?xml >version="1.0" encoding="UTF-8"?> ><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ " >xmlns:xsd="http://www.w3.org/2001/XMLSchema" >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soapenv:Body> > <soapenv:Fault> > <faultcode >xmlns:ns1="http://xml.apache.org/axis/ ">ns1:Server.userException</faultcode> > <faultstring>org.xml.sax.SAXException: Invalid element in >com.sybase.test.util.EmployeeVO - area</faultstring> > <detail> > <ns2:stackTrace >xmlns:ns2="http://xml.apache.org/axis/">org.xml.sax.SAXException: Invalid >element in com.sybase.test.util.EmployeeVO - area at >org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:252) > at >org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:893) > at >org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200) > at >org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:684) > at >org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:370) > at >org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:169) > at >org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:906) > at >org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200) > at >org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:684) > at >org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207) at >org.apache.axis.message.RPCElement.getParams(RPCElement.java:265) at >org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:190) > at >org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:276) >at >org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) > at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156) at >org.apache.axis.SimpleChain.invoke(SimpleChain.java:126) at >org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437) at >org.apache.axis.server.AxisServer.invoke(AxisServer.java:316) at >org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701) >at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at >org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at >com.sybase.jaguar.servlet.JagServlet.service(JagServlet.java:655) at >com.sybase.jaguar.servlet.JagRequestDispatcher.service(JagRequestDispatcher.java:922) > at >com.sybase.jaguar.servlet.JagWebResource.service(JagWebResource.java:90) >at >com.sybase.jaguar.servlet.JagFilterChain.doFilter(JagFilterChain.java:131) >at com.sybase.jaguar.servlet.ServletEngine._service(ServletEngine.java:804) > at >com.sybase.jaguar.servlet.ServletEngine.service(ServletEngine.java:338) >at >com.sybase.jaguar.servlet.ServletServiceImpl.doService(ServletServiceImpl.java:52) > at >com.sybase.jaguar.servlet._sk_JaguarServlet_ServletService.invoke(_sk_JaguarServlet_ServletService.java:151) > </ns2:stackTrace> > </detail> > </soapenv:Fault> > </soapenv:Body> ></soapenv:Envelope> > >================ Java code ================= > >import java.io.Serializable; > >/* > * Value Object to test user defined types. >*/ >public class EmployeeVO implements Serializable >{ > private String _lastName = ""; > private PhoneVO _phone = null; > > public EmployeeVO(){} > > > public EmployeeVO(String firstName, String lastName, PhoneVO phone) > { > _firstName = firstName; > _lastName = lastName; > _phone = phone; > } > > public String getFirstName() > { > return _firstName; > } > public void setFirstName(String firstName) > { > _firstName = firstName; > } > public String getLastName() > { > return _lastName; > } > public void setLastName(String lastName) > { > _lastName = lastName; > } > public PhoneVO getPhone() > { > return _phone; > } > public void setPhone(PhoneVO phone) > { > _phone = phone; > } > >} > >class PhoneVO implements Serializable >{ > private String _prefix = ""; > private String _location = ""; > > public PhoneVO(){} > > public PhoneVO(String area, String prefix, String location) > { > _area = area; > _prefix = prefix; > _location = location; > } > > public String getArea() > { > return _area; > } > public void setArea(String area) > { > _area = area; > } > public String getPrefix() > { > return _prefix; > } > public void setPrefix(String prefix) > { > _prefix = prefix; > } > public String getLocation() > { > return _location; > } > public void setLocation(String location) > { > _location = location; > } > >} > > _________________________________________________________________ MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus
deploy.wsdd
Description: Binary data