You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by babloosony <ba...@gmail.com> on 2005/02/18 14:57:52 UTC
AxisFault: could not find deserializer for type ...
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.