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 Anders Peterson <an...@optimatika.se> on 2003/09/24 09:19:41 UTC

Can the BeanDeserializer call other deserializers?

Can the org.apache.axis.encoding.ser.BeanDeserializer call any other  
deserializer? (Which deserializers  can it call?)

More specifically can it call the CalendarSerializer?

On tisdag, sep 23, 2003, at 15:29 Europe/Stockholm, Anders Peterson  
wrote:

> 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 
>>> Impl.java:485)
>>> 	at  
>>> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerIm 
>>> pl.java:428)
>>> 	at  
>>> org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese 
>>> rializationContextImpl.java:976)
>>> 	at  
>>> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja 
>>> va: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 
>>> bindingStub.java:472)
>>> 	at  
>>> se.optimatika.proj.qsd.com.QCDCommunicatorFront.getEvaluation(QCDComm 
>>> unicatorFront.java:166)
>>> 	at  
>>> se.optimatika.proj.qsd.com.QCDEvaluationCommunicator.callRemote(QCDEv 
>>> aluationCommunicator.java:73)
>>> 	at  
>>> se.optimatika.proj.qsd.com.QCDEntityCommunicator.download(QCDEntityCo 
>>> mmunicator.java:79)
>>> 	at  
>>> se.optimatika.proj.qsd.eo.QCDEvaluation.doRemoteImport(QCDEvaluation. 
>>> java: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
>
>