Hi,

Please help as I really have to get something done for our evaluation of
AXIS.
I really appreciate your help and a quick reply.


Now the problem is that I register the bean mapping as follows:

<deployment xmlns="http://xml.apache.org/axis/wsdd/";
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
 <service name="symcor:RequestorService" provider="java:RPC">
  <parameter name="className" value="com.symcor.od.server.soap.AxisFacade"/>
  <parameter name="allowedMethods" value="*"/>
 </service>
  <beanMapping qname="symcor:folder" xmlns:symcor="symcor:RequestorService"
 
languageSpecificType="java:com.symcor.od.common.soap.message.Folder"/>
</deployment>

The API is as bellows:

    public Folder[] logon (String configDir, String appName, String

I tried the wsdd file as above, but got the following error:
===============================================
- Exception:
org.xml.sax.SAXException: No deserializer defined for array type
{symcor:Request
orService}folder
        at
org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDe
serializer.java:256)

===============================================
So I guess that the problem is that the Folder[] type is not known to
Axis, even Folder is. So I add typeMapping to it, as

<deployment xmlns="http://xml.apache.org/axis/wsdd/";
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
 <service name="symcor:RequestorService" provider="java:RPC">
  <parameter name="className" value="com.symcor.od.server.soap.AxisFacade"/>
  <parameter name="allowedMethods" value="*"/>
      <typeMapping
        xmlns:ns="symcor:RequestorService"
        qname="symcor:arrayOfFolder"
        type="java:com.symcor.od.common.soap.message.Folder[]"
        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
      />
 </service>
  <beanMapping qname="symcor:folder" xmlns:symcor="symcor:RequestorService"
 
languageSpecificType="java:com.symcor.od.common.soap.message.Folder"/>
</deployment>

However, this time, I got another error message and I even can not deploy:
 faultCode: {http://xml.apache.org/axis/}Server.userException
 faultString: org.apache.axis.deployment.wsdd.WSDDException:
javax.xml.rpc.JAXRP
CException: Null qualified name specified.
javax.xml.rpc.JAXRPCException: Null qualified name specified.
        at
org.apache.axis.encoding.TypeMappingImpl.register(TypeMappingImpl.jav
a(Compiled Code))
        at
org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(WSDDSer



It seems to me that the Axis picks up the definition of type Folder, but not
Folder[].
How should I tell Axis about Folder[]?

I really appreciate your help.

Thanks  alot for your quick reply.

Jian






-----Original Message-----
From: Jian Zhang [mailto:[EMAIL PROTECTED]]
Sent: Monday, September 30, 2002 10:21 AM
To: '[EMAIL PROTECTED]'
Subject: org.xml.sax.SAXException: No deserializer, problem



I have a soap service that has a method of signature like:

    public Folder[] logon (String configDir, String appName, String
serverName, String loginName, String passwd)  
Where Folder is a Java bean representing a file directory.


This same interface works with SoapImplementation, but when I port it to
Axis, the XML message goes from client
to server well, but then on the client side, it reports the following error
message. What have I do wrong
Please help. Thanks.



org.xml.sax.SAXException: No deserializer for
{http://www.w3.org/2001/XMLSchema}
anyType
        at
org.apache.axis.encoding.DeserializerImpl.onStartElement(Deserializer
Impl.java:446)
        at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerIm
pl.java:393)
        at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:896)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:158)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:681)
        at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerIm
pl.java:369)
        at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:896)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:158)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:681)
        at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerIm
pl.java:369)
        at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:896)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:158)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:681)
        at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:244)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:268)
        at org.apache.axis.client.Call.invoke(Call.java:1862)
        at org.apache.axis.client.Call.invoke(Call.java:1768)
        at org.apache.axis.client.Call.invoke(Call.java:1306)
        at com.symcor.od.client.soap.AxisClient.logon(AxisClient.java:52)


Reply via email to