Hello group,

I know there are lots of posts about serializing problems but I couldn't find the answer to mine, yet.
I'm using Tomcat 5.5.4 on Fedora2 and Axis1.2 RC2.


I would really like to know how one should work with the files generated by WSDL2Java,
I'm using the locator and the service class to reach my service:


CbirServiceService myService = new CbirServiceServiceLocator();
CbirService port = myService.getCbirService();
                        
ResultParameterObj resultPO = port.getResultParameterObj(requestPO);


Do I have to use the other classes (which are modiefied version of my own classes, so the ones which
now implement java.io.Serializable) in my server side programming as well or are they only necessary for the
BindingStub?


I'm asking this beause I get the famous: No serializer found for class cbir.xm.serviceObjects.RequestImage exception
while running my Client.


the packacke of my own RequestImage object is cbir.xm.serviceObjects (these are my own simple classes, not the ones generated by WSDL2Java)

the packacke of the classes generated by WSDL2Java is cbir.client.wsdl2java

Which one do I have to use for my server application programming? Is there a difference anyway?


Now to the part of the serializer error, my deploy.wsdd contains:

<<DEPLOY.WSDD>>

...
<service name="CbirService" provider="java:RPC">
        <namespace>http://cbir/client/wsdl2java</namespace>
        <parameter name="className" value="cbir.webservice.CbirService"/>
        <parameter name="allowedMethods" value="*"/>
         <typeMapping qname="ourNS:Descriptor"
                         xmlns:ourNS="http://cbir/client/wsdl2java";

languageSpecificType="java:cbir.mpeg7.descriptor.Descriptor"

serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
        <typeMapping qname="ourNS:RequestImage"
                         xmlns:ourNS="http://cbir/client/wsdl2java";

languageSpecificType="java:cbir.xm.serviceObjects.RequestImage"

serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"

encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />

<beanMapping qname="ourNS:RequestImage"
xmlns:ourNS="http://cbir/client/wsdl2java";
languageSpecificType="java:cbir.xm.serviceObjects.RequestImage"/>


....


I added the beanMapping recently because I hoped that would solve my problem, but it didn't.


My ServerConfig contains:

<<server-config.wsdd>>

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"; xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.Directory" value="E:\Programme\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF\attachments"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXMLDeclaration" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="CbirService" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="cbir.webservice.CbirService"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns1:Descriptor" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.mpeg7.descriptor.Descriptor" xmlns:ns1="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns2:RequestImage" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.xm.serviceObjects.RequestImage" xmlns:ns2="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns3:DominantColor" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.mpeg7.descriptor.DominantColor" xmlns:ns3="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns4:ColorLayout" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.mpeg7.descriptor.ColorLayout" xmlns:ns4="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns5:ColorQuantization" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.mpeg7.descriptor.ColorQuantization" xmlns:ns5="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns6:ColorSpace" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.mpeg7.descriptor.ColorSpace" xmlns:ns6="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns7:EdgeHistogramm" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.mpeg7.descriptor.EdgeHistogramm" xmlns:ns7="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns8:ResultImage" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.xm.serviceObjects.ResultImage" xmlns:ns8="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns9:ResultParameterObj" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.xm.serviceObjects.ResultParameterObj" xmlns:ns9="http://cbir/client/wsdl2java"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; qname="ns10:RequestParameterObj" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:cbir.xm.serviceObjects.RequestParameterObj" xmlns:ns10="http://cbir/client/wsdl2java"/>
<beanMapping languageSpecificType="java:cbir.xm.serviceObjects.RequestImage" qname="ns11:RequestImage" xmlns:ns11="http://cbir/client/wsdl2java"/>
<namespace>http://cbir/client/wsdl2java</namespace>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
<parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
<parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>





Does anyone know what the problem could be, am I missing something important?
Perhaps I should mention, that RequestImage is an attribute of RequestParamterObj, if that is important at all?
It all worked fine in the beginning of writing the webservice, until I had to pass my own type to it :(


Thanks a lot in advance.

cheers
Steve

Reply via email to