I solved this the easy/wrong way!
I asked to have the dateTime communicated as a string instead (my app is the only client). Now everything works fine!
/Anders
On tisdag, sep 24, 2002, at 05:26 Europe/Stockholm, Dimuthu Leelarathne wrote:
Hi Anders,
I had the exact-problem sometime back, but it was regarding doc\literal
services. Isn't this a client side deserialization problem? The Binding stub
was the same ( i.e. it added a elemfield to the typedesc ).
According to your stackTrace I see that the program-control-flow has not
reached BeanDeserializer, which is supposed to deserialize it. I think you
have to fix it first. The bean deserializer with the typedesc(where we added
the elemField) should deserialize it. I didn't try hard enough to give you a
concrete word, as to whether this could be done or not. Good luck.
Regards, Dimuthu.
----- Original Message ----- From: "Anders Peterson" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, September 23, 2003 7:29 PM Subject: Re: No deserializer for dateTime
Is this a bug? ...
What I have is a custom data type TNAV conatining two attributes - an int and a dateTime.
// Type metadata private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.axis.description.TypeDesc(TNAV.class);
static { typeDesc.setXmlType(new javax.xml.namespace.QName("urn:FundSOAPIntf", "TNAV")); org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName("NAV_Code"); elemField.setXmlName(new javax.xml.namespace.QName("", "NAV_Code")); elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int")); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName("NAV_DateTime"); elemField.setXmlName(new javax.xml.namespace.QName("", "NAV_DateTime")); elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "dateTime")); typeDesc.addFieldDesc(elemField); }
The *BindingStub it is configured to use a bean (de)serializer for TNAV.
qName = new javax.xml.namespace.QName("urn:FundSOAPIntf", "TNAV"); cachedSerQNames.add(qName); cls = FundSOAPIntf.TNAV.class; cachedSerClasses.add(cls); cachedSerFactories.add(beansf); cachedDeserFactories.add(beandf);
Somehow the bean deserializer fails to find/call the dateTime deserializer. Is this a bug?
/Anders
On tisdag, sep 23, 2003, at 10:20 Europe/Stockholm, Anders Peterson wrote:
Hi again,
As I understand it the org.apache.axis.encoding.ser.CalendarDeserializer deserializer is supposed to handle this.
org.xml.sax.SAXException: No deserializer for dateTime
I assume the above exception means the deserializer is not found (not that it doesn't work properly). Why isn't it found? Other (de)serializers are found. The wsdl2java generated code works fine for messages not containing dateTime objects.
/Anders
On måndag, sep 22, 2003, at 18:31 Europe/Stockholm, Anders Peterson wrote:
Hi,
I’m relatively new to SOAP and completely new to Axis.
I’ve used the wsdl2java tool to generate source code that I’m using unaltered. It works fine except for one thing (so far). I get the following exception:
- Exception:
org.xml.sax.SAXException: No deserializer for dateTime
at
org.apache.axis.encoding.DeserializerImpl.onStartElement(Deserializer I
mpl.java:485)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerIm p
l.java:428)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese r
ializationContextImpl.java:976)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja v
a:198)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen t
.java:722)
at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
at org.apache.axis.client.Call.invoke(Call.java:2272)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at
se.ws.backofficeonline.FundSOAP.IFundSOAPbindingStub.getNAV(IFundSOAP b
indingStub.java:472)
at
se.optimatika.proj.qsd.com.QCDCommunicatorFront.getEvaluation(QCDComm u
nicatorFront.java:166)
at
se.optimatika.proj.qsd.com.QCDEvaluationCommunicator.callRemote(QCDEv a
luationCommunicator.java:73)
at
se.optimatika.proj.qsd.com.QCDEntityCommunicator.download(QCDEntityCo m
municator.java:79)
at
se.optimatika.proj.qsd.eo.QCDEvaluation.doRemoteImport(QCDEvaluation. j
ava:493)
at Application.<init>(Application.java:60)
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Class.java:232)
at
com.webobjects.appserver.WOApplication.main(WOApplication.java:296)
at Application.main(Application.java:31)
Shouldn’t this work?
http://www.w3.org/TR/xmlschema-2/#dateTime
Is it some sort of configuration problem?
I’m using Axis 1.1 with WebObjects 5.2.
/Anders
__________________________
Anders Peterson
Optimatika
Torstenssonsgatan 12, 5tr.
114 56 Stockholm
Sweden
Personal: +46 - (0)70 - 843 78 92
Company: + 46 - (0)8 - 720 30 66
Fax: + 46 - (0)8 - 15 31 00