Hi All,

I exposed an POJO as web service using AXIS 1.2 RC1, TOMCAT and custom
(de)serializers When I try to access the web service I am getting an
axis
fault "org.xml.sax.SAXException: Deserializing parameter 'in0':  could
not find deserializer for type
{http://chapter5.wroxaxis}SparePartBean";.
If anyone is interested I can paste my axis (de)serialzers code.  
Please suggest how to make this work ?



axis fault from on client 
-------------------------------------------------------------
     [java] AxisFault
     [java]  faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     [java]  faultSubcode:
     [java]  faultString: org.xml.sax.SAXException: Deserializing
parameter 'in0':  could not find deserializer for type
{http://chapter5.wroxaxis}SparePartBean
     [java]  faultActor:
     [java]  faultNode:
     [java]  faultDetail:
     [java]     {http://xml.apache.org/axis/}hostname:hyddl0337

     [java] org.xml.sax.SAXException: Deserializing parameter 'in0': 
could not find deserializer for type
{http://chapter5.wroxaxis}SparePartBean
     [java]     at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
     [java]     at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
     [java]     at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1083)
     [java]     at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
     [java]     at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
     [java]     at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
     [java]     at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
     [java]     at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
     [java]     at
org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
     [java]     at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
     [java]     at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
     [java]     at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
     [java]     at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:226)
     [java]     at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
     [java]     at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
     [java]     at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
     [java]     at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
     [java]     at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2702)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2378)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2301)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1758)
     [java]     at
wroxaxis.chapter5.SparePartDetailsSerSoapBindingStub.addSparePart(SparePartDetailsSerSoapBindingStub.java:144)
     [java]     at
wroxaxis.chapter5.SparePartDetailsSerClient.main(SparePartDetailsSerClient.java:30)
-------------------------------------------------------------



wsdl
-------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:9999/axis/services/SparePartDetailsSer";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://localhost:9999/axis/services/SparePartDetailsSer";
xmlns:intf="http://localhost:9999/axis/services/SparePartDetailsSer";
xmlns:tns1="http://chapter5.wroxaxis";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<!--WSDL created by Apache Axis version: 1.2RC1
Built on Sep 29, 2004 (08:29:40 EDT)-->
 <wsdl:types>
  <schema elementFormDefault="qualified"
targetNamespace="http://chapter5.wroxaxis";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <complexType name="SparePartBean">
    <sequence>
     <element name="description" nillable="true" type="xsd:string"/>
     <element name="price" type="xsd:float"/>
     <element name="sku" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <element name="in0" type="tns1:SparePartBean"/>
  </schema>
  <schema elementFormDefault="qualified"
targetNamespace="http://localhost:9999/axis/services/SparePartDetailsSer";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://chapter5.wroxaxis"/>
   <element name="addSparePartReturn" type="xsd:string"/>
  </schema>
 </wsdl:types>

   <wsdl:message name="addSparePartResponse">

      <wsdl:part element="impl:addSparePartReturn" name="addSparePartReturn"/>

   </wsdl:message>

   <wsdl:message name="addSparePartRequest">

      <wsdl:part element="tns1:in0" name="in0"/>

   </wsdl:message>

   <wsdl:portType name="SparePartService">

      <wsdl:operation name="addSparePart" parameterOrder="in0">

         <wsdl:input message="impl:addSparePartRequest"
name="addSparePartRequest"/>

         <wsdl:output message="impl:addSparePartResponse"
name="addSparePartResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="SparePartDetailsSerSoapBinding"
type="impl:SparePartService">

      <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="addSparePart">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="addSparePartRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="addSparePartResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="SparePartServiceService">

      <wsdl:port binding="impl:SparePartDetailsSerSoapBinding"
name="SparePartDetailsSer">

         <wsdlsoap:address
location="http://localhost:9999/axis/services/SparePartDetailsSer"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
-------------------------------------------------------------




web service java client program
-------------------------------------------------------------
                        String endpointURL =
                        
"http://localhost:9999/axis/services/SparePartDetailsSer";;

                        String methodName = "addSparePart";

                        Service service = new Service();
                        Call call = (Call) service.createCall();
                        call.setTargetEndpointAddress (new java.net.URL 
(endpointURL));
                        call.setOperationName (new QName 
("http://chapter5.wroxaxis";, methodName));

                        SparePartBean spBean = new SparePartBean();
                        spBean.setSku ("SKU-114");
                        spBean.setPrice (50.00f);
                        spBean.setDescription ("Air Filter Model: 12345");

                        QName qname = new QName ("http://chapter5.wroxaxis";, 
"SparePartBean");
                        Class cls = wroxaxis.chapter5.SparePartBean.class;

                        call.registerTypeMapping (cls, qname,
WroxAxisSerializerFactory.class,WroxAxisDeserializerFactory.class);
                        call.addParameter ("SparePart", qname, 
ParameterMode.IN);

                        call.setReturnType (XMLType.XSD_STRING);

                        Object[] params = new Object[] { spBean };

                        String result = (String) call.invoke (params);

                        System.out.println ("The response: " + result);
                }
                catch (Exception e)
                {
                        System.err.println (e.toString());
                }
-------------------------------------------------------------



soap request message
-------------------------------------------------------------
POST /axis/services/SparePartDetailsSer HTTP/1.0

Content-Type: text/xml; charset=utf-8

Accept: application/soap+xml, application/dime, multipart/related, text/*

User-Agent: Axis/1.2RC2

Host: 127.0.0.1:9999

Cache-Control: no-cache

Pragma: no-cache

SOAPAction: ""

Content-Length: 354


<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>
      <in0 xmlns="http://chapter5.wroxaxis";>
         <description>Air Filter Model: 12345</description>
         <price>50.0</price>
         <sku>SKU-114</sku>
      </in0>
   </soapenv:Body></soapenv:Envelope>
-------------------------------------------------------------



soap response message
-------------------------------------------------------------
HTTP/1.1 500 Internal Server Error

Content-Type: text/xml;charset=utf-8

Date: Fri, 18 Feb 2005 13:46:27 GMT

Server: Apache-Coyote/1.1

Connection: close



<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>soapenv:Server.userException</faultcode>
         <faultstring>org.xml.sax.SAXException: Deserializing
parameter 'in0':  could not find deserializer for type
{http://chapter5.wroxaxis}SparePartBean</faultstring>
         <detail>
            <ns1:hostname
xmlns:ns1="http://xml.apache.org/axis/";>hyddl0337</ns1:hostname>
         </detail>
      </soapenv:Fault>
   </soapenv:Body></soapenv:Envelope>
-------------------------------------------------------------





Thanks & Regards,
Kumar.

Reply via email to