Re: please, help with "no deserializer found ..." message
Nige White <[email protected]>
| Newsgroups | gmane.text.xml.soap.user |
|---|---|
| Message-ID | <[email protected]> |
Hi all, first time poster, been lurking for a while.
We develop a freight forwarding application in the proprietary Synergy
DBL language which is a rather primitive procedural language with its
roots in the 1970s!
It's been updated to include TCP/IP routines, HTTP handling routnies,
and a (very) rudimentary XML parser etc,
I've written a series of XSLT transformations to generate a DBL SOAP
server, and matching Java client classes from the XML interface
description that our system uses (A very primitive analogue of WSDL
which just specifies compound data types built of DBL primitives,
followed by method declarations).
All is working well. Except for one thing. When one of the compound data
types which I send back to Apache SOAP contains a Date.
The compound data types generate Java Beans on the client side, and I'm
using the default Apache BeanSerializer to marshal/unmarshal them:
soapmappingregistry.mapTypes("http://schemas.xmlsoap.org/soap/encoding/",
new QName("urn:forward-comp.co.uk", "Trkmil_011"),
Trkmil_011.class, beanserializer, beanserializer);
I copied how I serialize the Beans from examining the packets created by
Apache SOAP; when I pass a Parameter like this:
String EncURI = null;
asp_wt_listParams.addElement(new Parameter("bar",
java.util.Date.class, bar, EncURI));
Apache Soap creates an element like this:
<bar xsi:type="xsd:dateTime">2004-07-17T00:00:00.000Z</bar>
But when on the DBL server size, I serialize a Date attribute of one of
our compound data types like this:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xse="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:fcl="urn:forward-comp.co.uk">
<SOAP-ENV:Body>
<fcl:asp_fv_mile_listResponse>
<return xsi:type="xsd:int">1</return>
<trkmil_011 xsi:type="fcl:Trkmil_011">
<status xsi:type="xsd:byte">0</status>
<sequencer_date_d8
xsi:type="xsd:dateTime">2004-06-08T00:00:00.000Z</sequencer_date_d8>
</trkmil_011>
</fcl:asp_fv_mile_listResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope
I get the following Exception:
[SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to
deserialize a 'http://www.w3.org/1999/XMLSchema:dateTime'
using encoding style 'null'.;
targetException=java.lang.IllegalArgumentException: No Deserializer
found to deserialize a 'http://www.w3.org/1999/XMLSchema:dateTime' using
encoding style 'null'.]
at org.apache.soap.rpc.Call.invoke(Call.java, Compiled Code)
at com.fcl.aspclasses.asp.asp_fv_mile_list(asp.java, Compiled Code)
at
org.apache.jsp.AspFvTrkmilList_jsp._jspService(AspFvTrkmilList_jsp.java,
Compiled Code)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled
Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java,
Compiled Code)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java,
Compiled Code)
I'm doing exactly what Apache SOAP does! How come it can't deserialize
that back into a java.util.Date?
Thanks for any help,
Nige
_____________________________________________________________________
This message has been checked for all known viruses. Virus scanning
powered by Messagelabs http://www.messagelabs.com For more information
e-mail : [email protected]