Hi,

I'm new on the Soap user mailing list.
There is some time that I have some problems to use my own mapped object 
with SOAP.

I developped some objects that implements the import 
org.apache.soap.util.xml.(de)serializer class.
I put them in my deployement descriptor like below:

<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment";
            id="urn:OntologyServer">
 <isd:provider type="java"
               scope="Application"
               methods="getConcept">
   <isd:java class="eCos.server.SOAPServer.eCosOntologyServerBean" 
static="false"/>
 </isd:provider>

 <isd:mappings>
   <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
            xmlns:x="urn:eCognos" qname="x:eCosConceptImpl"
            javaType="eCos.eCosConceptManager.eCosConceptImpl"
            
java2XMLClassName="eCos.server.SOAPServer.eCosConceptSerializer"
            
xml2JavaClassName="eCos.server.SOAPServer.eCosConceptSerializer"/>
 </isd:mappings>   
 
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener> 

    </isd:service>


After that, i developped the client side  that registers those objects 
in the SOAPMappingRegistry and invoke the service:


        // Get command line args
        URL url = new URL("http://10.3.5.11:8080/soap/servlet/rpcrouter"; 
); // Address of SOAP router

      // Build the call
       Call call=new Call();
       call.setSOAPMappingRegistry(new SOAPMappingRegistry());
       call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
       call.setTargetObjectURI("urn:OntologyServer");
       call.setMethodName("getConcept");

       eCosConceptSerializer s = new eCosConceptSerializer();
       call.getSOAPMappingRegistry().mapTypes( Constants.NS_URI_SOAP_ENC,
                                               new 
QName("urn:eCognos","eCosConceptImpl"),
                                               eCosConceptImpl.class,
                                               s,
                                               s);

       Vector params=new Vector();
       params.addElement(new Parameter("conceptId",String.class,
                                         args[0],null));

       call.setParams(params);

       // Invoke the call to the SOAP server
       resp = call.invoke(url, "");
       System.out.println("invocation of the method of the service !");

       // Print the returned string
       boolean status=resp.generatedFault();
       Parameter ret=resp.getReturnValue();
       Object value=ret.getValue();
       System.out.println("Response : "+ value);
       System.out.println("End of the call !");

The problem is that the (un)marshall is never called by the 
application.So the ret object (in the client) receive null.
If the service returns a String, the ret object receive it.

Is anybody could help  me ?
I really don't understand why the serializer is never called.

Thanks by advance.
Guillaume




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to