Hi,

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



Reply via email to