I have a method that takes a complex type. When I
construct the Call object myself and set the
typeMapping everything is fine:
Call call = (Call) service.createCall();
QName qn1 = new QName(
"urn:DigitalObjectServices", "ListObjectsSOAPRequest"
);
QName qn2 = new QName(
"urn:DigitalObjectServices",
"FilterCriteriaSOAPRequest" );
call.registerTypeMapping(ListObjectsSOAPRequest.class,
qn1, new
org.apache.axis.encoding.ser.BeanSerializerFactory(ListObjectsSOAPRequest.class,
qn1), new
org.apache.axis.encoding.ser.BeanDeserializerFactory(ListObjectsSOAPRequest.class,
qn1));
call.registerTypeMapping(FilterCriteriaSOAPRequest.class,
qn2, new
org.apache.axis.encoding.ser.BeanSerializerFactory(FilterCriteriaSOAPRequest.class,
qn2), new
org.apache.axis.encoding.ser.BeanDeserializerFactory(FilterCriteriaSOAPRequest.class,
qn2));
However when I try to use the stub created from my
WSDL it complains of:
org.xml.sax.SAXException: Deserializing parameter
'listObjectsSOAPRequest': could not find deserializer
for type {http://soap.miscy}ListObjectsSOAPRequest
I'm assuming this must be a problem with my WSDD not
providing information about the type mapping correctly
My WSDD looks like:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
targetNamespace="http://server.domain.com/services/DigitalObjectServices?wsdl">
<service name="DigitalObjectServices"
provider="java:RPC">
<parameter name="className"
value="misc.soap.DigitalObjectServices"/>
<parameter name="allowedMethods" value="*"/>
<beanMapping qname="myNS:ListObjectsSOAPRequest"
xmlns:myNS="urn:DigitalObjectServices"
languageSpecificType="java:misc.soap.ListObjectsSOAPRequest"/>
<beanMapping qname="myNS:FilterCriteriaSOAPRequest"
xmlns:myNS="urn:DigitalObjectServices"
languageSpecificType="java:misc.soap.FilterCriteriaSOAPRequest"/>
</service>
</deployment>
Any advice please?
__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail