Your typeMapping is wrong. The qname attribute must refer to the
qualified name of the element that will appear in the SOAP message
(the xxiddetails element). It should look something like this:

       <typeMapping
             type="java:org.simple.xxid"
             qname="ns:xxiddetails"
             xmlns:ns="[your-schemas-targetNamespace]"
             serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
             deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
             encodingStyle=""
       />

On 8/2/06, John Thompson <[EMAIL PROTECTED]> wrote:

hi!
 I am a newbie to Axis....so sorry if this is a pretty obvious fix.

I have defined a ws service and client that exchange an object that contains
two strings.

The service is invoked without a problem and the service executes and
returns


without any fault being created. The problem is that the Java object after
deserialization is
corrupted with the pair of strings each set to the same value...which is the
2nd string of the pair.

There is no fault or error signaled.



Axis Version 1.4 under Linux SuSe 10.1

--- The type (which I simplified because this appears in a larger example.

public class xxid
{
 private String s1;
 private String s2;


 ...sets and gets for the class.

}

---

It is invoked using an Axis call using the code from the user tutorial.

---

The service is pretty simple

public class example
{
 public String useService(xxid xxidDetails)


 {
 return "s1 is = " + xxidDetails.getS1() +
 " S2 = " + xxidDetails.getS2();
 }
}
---

The WSDL is straightforward

<element name="xxiddetails">


 <complexType>
 <sequence>
 <element name="s1" type="xsd:string"/>
 <element name="s2" type="xsd:string"/>
 </sequence>


 </complexType>
</element>
---

and has a deployment descriptor (as per tutorial) with a service
definition...


<service name="example" provider="java:RPC" use="literal" style="document">


 <parameter name="className" value="org.simple.example"/>
 <wsdlFile>/wsdl/example.wsdl</wsdlFile>
 <parameter name="allowedMethods" value="*"/>


 <typeMapping
 type="java:org.simple.xxid"
 qname="org.simple.xxid"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory
"

deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
 encodingStyle=""
 />
</service>

----

The soap on the wire looks ok to me also....


----
<?xml version="1.0" encoding="UTF-8"?>
 <soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/
"
xmlns:xsd="http://www.w3.org/2001/XMLSchema
"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
">
 <soapenv:Body>

 <useService xsi:type="org.simple.xxid" xmlns="">
 <s1 xsi:type="xsd:string">First</s1>
 <s2 xsi:type="xsd:string">second</s2>


 </useService>
 </soapenv:Body>
 </soapenv:Envelope>
----

Anyone any thoughts as to what is the problem? (As I said the service is
invoked and executes correctly


it is just that the server end object value is corrupted.)

thanks...

TJ



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

Reply via email to