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]