You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Dimuthu Leelarathne <mu...@vijayaba.cse.mrt.ac.lk> on 2002/09/24 05:26:17 UTC

Re: No deserializer for dateTime

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" <an...@optimatika.se>
To: <ax...@ws.apache.org>
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(DeserializerI
>> mpl.java:485)
>> at
>> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImp
>> l.java:428)
>> at
>> org.apache.axis.encoding.DeserializationContextImpl.startElement(Deser
>> ializationContextImpl.java:976)
>> at
>> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.jav
>> a:198)
>> at
>> org.apache.axis.message.MessageElement.publishToHandler(MessageElement
>> .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(IFundSOAPb
>> indingStub.java:472)
>> at
>> se.optimatika.proj.qsd.com.QCDCommunicatorFront.getEvaluation(QCDCommu
>> nicatorFront.java:166)
>> at
>> se.optimatika.proj.qsd.com.QCDEvaluationCommunicator.callRemote(QCDEva
>> luationCommunicator.java:73)
>> at
>> se.optimatika.proj.qsd.com.QCDEntityCommunicator.download(QCDEntityCom
>> 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



Re: No deserializer for dateTime

Posted by Dimuthu Leelarathne <mu...@vijayaba.cse.mrt.ac.lk>.
Well done :-).

----- Original Message -----
From: "Anders Peterson" <an...@optimatika.se>
To: <ax...@ws.apache.org>
Sent: Wednesday, September 24, 2003 7:53 PM
Subject: Re: No deserializer for dateTime


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" <an...@optimatika.se>
> To: <ax...@ws.apache.org>
> 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



Re: No deserializer for dateTime

Posted by Anders Peterson <an...@optimatika.se>.
Or so I thought...

Now I get:

org.xml.sax.SAXException: No deserializer for decimal
	at  
org.apache.axis.encoding.DeserializerImpl.onStartElement(DeserializerImp 
l.java:485)
	at  
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl. 
java:428)
	at  
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deseria 
lizationContextImpl.java:976)
	at  
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java: 
198)
	at  
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.j 
ava: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.getCustodyAccount(I 
FundSOAPbindingStub.java:768)

I have better (more) info:

### Begin Problem Report ###
2003-09-24 16:16:30 Etc/GMT
Victim: se.optimatika.proj.qsd.com.QCDCommunicatorFront@5cbc57
Problem: Access violation at address CCFFFCFB. Read of address CCFFFCFB

AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
  faultSubcode:
  faultString: Access violation at address CCFFFCFB. Read of address  
CCFFFCFB
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/}stackTrace: AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
  faultSubcode:
  faultString: Access violation at address CCFFFCFB. Read of address  
CCFFFCFB
  faultActor:
  faultNode:
  faultDetail:

Access violation at address CCFFFCFB. Read of address CCFFFCFB
	at  
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.ja 
va:260)
	at  
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.jav 
a:169)
	at  
org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseriali 
zationContextImpl.java:1015)
	at  
org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser 
.java:585)


Re: No deserializer for dateTime

Posted by Anders Peterson <an...@optimatika.se>.
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" <an...@optimatika.se>
> To: <ax...@ws.apache.org>
> 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