This is FYI...in case anyone else observes this,,, (Sorry to Anne BTW because my typo of xxiddetails that she refers to ...there is indeed a typo but only in the email..not in the code.)
The problem I encountered is resolved and the code now works....my error was that I accidentally deleted the default constructor for the org.simple.xxid type....and the problem is resolved by restoring it...trivial but timeconsuming :-) thanks for the help. On 03/08/06, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
The problem that I see is that the WSDD specifies a different local name than the one specified in the WSDL. The WSDD qname is null}"org.simple.xxid". The WSDL qname is [targetnamespace]}xxiddetails. That's the reason that your SOAP message contains the xsi:type attribute: <useService xsi:type="org.simple.xxid" xmlns=""> The qname specified in your WSDD typeMapping must correspond to qname of the WSDL message element. Because it doesn't know the type you're sending, it doesn't know how to interpret it. Anne On 8/3/06, John Thompson <[EMAIL PROTECTED]> wrote: > The QName is created without a NS (see soap snippet because this is > just a test example...) and adding one does not make a difference to > the behaviour described in the message below. > > As I said,,, no error or fault is reported...the only sign of a > problem is that a call > > useService ( {"one" , "two" } ) > > creates an object on the server side as > > {"two" "two"} > > This behaviour is repeated for 2+ arguments with the last argument > setting all values to its value. > > thanks in any case Anne. > > On 02/08/06, Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > > > > 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] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]