users@jax-rpc.java.net

Re: Problems in Serialization of complex types

From: Narinder Kumar <nkumarfr_at_aol.com>
Date: Tue, 20 Jul 2004 11:32:00 +0200
That takes us back to my old posting dated 5th July Subject : "Re: Communication problem between Apache-Axis WebService and JWSDP client", where I have metioned problems implementing a static stub client for Web Service.

Kathy replied to that mail suggesting testing against JWSDP1.4 but we have already implemented all the clients using JWSDP 1.3 and would like to move only when the problem appears to be linked with JWSDP libraries. I am attaching my Static stub client implementation with this mail.

I am able to create a proxy for the WebService, but when I call any WebService methods, I get following exception :

java.rmi.RemoteException: Runtime exception; nested exception is:
        deserialization error: deserialization error: unexpected XML reader state. expected:
 END but found: START: country
        at com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(StreamingSen
der.java:248)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:230)
        at com.aol.tamagochi.webservice.FadFogwService_Stub.preQualify(FadFogwService_Stub.j
ava:272)
        at FogWSClient.main(FogWSClient.java:59)
Caused by: deserialization error: deserialization error: unexpected XML reader state. expect
ed: END but found: START: country
        at com.sun.xml.rpc.encoding.SOAPDeserializationContext.deserializeMultiRefObjects(SO
APDeserializationContext.java:82)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:163)
        ... 2 more

 

Regards
Narinder

kathy walsh wrote on 19/07/2004, 21:32:

I have taken a look at your wsdl.
It is more than a bit complicated for a dynamic proxy client
and uses attributes which that dynamic client does not currently support-

My best suggestion is to use static stubs for your client program.

JAXRPC 2.0 will be fixing many dynamic client problems-
Kathy


Narinder Kumar wrote:
<title>
Hi
Please find attached WSDL file and a simplified client program.

Regards
Narinder
 
 


 




kathy walsh wrote on 19/07/2004, 17:08:
Please send the wsdl you are using and your
client program or a simplified one-
I will take a look-
Kathy

Narinder Kumar wrote:
<title><title> Hi,

I am implementing a Web Service client and coming across Serialization problem. In Web Service there is a method with following signature :

OrderResponse  order (OrderRequest request)

OrderRequest and OrderResponse both are user defined defined complex types implemented as JavaBeans. Skeleton of OrderRequest class is :

package com.aol.fog.fr.objects;

public class OrderRequest extends OrderRequestCommon {

    private Address adsl_address = null;

    /....
    ../

    public Address getAdsl_address() {
        return adsl_address;
    }
    public void setAdsl_address(Address adsl_address) {
        this.adsl_address = adsl_address;
    }

Address again is a Java class implemented as JavaBean with following code :

package com.aol.fog.fr.objects;

public class Address {

    private String title;
     /...
     ../

    public Address() {
    }

     public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    /...
}

I use wscompile to generate stub classes for the webservice in package : com.aol.fog.fr.objects

In the client code :

           Address adslAddress = new Address();
           adslAddress.setTitle("test");

           OrderRequest request = new OrderRequest();
           request.
setAdsl_address (adslAddress);

          //Create proxy for web service etc

          try {
           OrderResponse response = myProxy.order(request);
         } catch (Exception exc) {
           System.out.println ("Error while calling order method on FOG Web Service");
           System.out.println(exc.getMessage());
           exc.printStackTrace();
        }

The call throws following exception :

serialization error: java.lang.IllegalArgumentException: object is not an instance of declaring class
serialization error: java.lang.IllegalArgumentException: object is not an instance of declaring class
        at com.sun.xml.rpc.encoding.ObjectSerializerBase.serialize(ObjectSerializerBase.java
:113)
        at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.serializeInstance(Referencea
bleSerializerImpl.java:194)
        at com.sun.xml.rpc.encoding.SOAPSerializationContext.serializeMultiRefObjects(SOAPSe
rializationContext.java:94)
        at com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:477)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:59)
        at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:353)
        at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.jav
a:99)
        at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.jav
a:71)
        at $Proxy0.order(Unknown Source)
        at FogWSDynClient.main(FogWSDynClient.java:133)

CAUSE:

java.lang.IllegalArgumentException: object is not an instance of declaring class
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java
:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at com.sun.xml.rpc.encoding.ValueTypeSerializer$1.get(ValueTypeSerializer.java:84)
        at com.sun.xml.rpc.encoding.GenericObjectSerializer.doSerializeInstance(GenericObjec
tSerializer.java:163)
        at com.sun.xml.rpc.encoding.ObjectSerializerBase.serialize(ObjectSerializerBase.java
:102)
        at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.serializeInstance(Referencea
bleSerializerImpl.java:194)
        at com.sun.xml.rpc.encoding.SOAPSerializationContext.serializeMultiRefObjects(SOAPSe
rializationContext.java:94)
        at com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:477)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:59)
        at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:353)
        at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.jav
a:99)
        at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.jav
a:71)
        at $Proxy0.order(Unknown Source)
        at FogWSDynClient.main(FogWSDynClient.java:133)

CAUSE:

java.lang.IllegalArgumentException: object is not an instance of declaring class
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java
:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at com.sun.xml.rpc.encoding.ValueTypeSerializer$1.get(ValueTypeSerializer.java:84)
        at com.sun.xml.rpc.encoding.GenericObjectSerializer.doSerializeInstance(GenericObjec
tSerializer.java:163)
        at com.sun.xml.rpc.encoding.ObjectSerializerBase.serialize(ObjectSerializerBase.java
:102)
        at com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.serializeInstance(Referencea
bleSerializerImpl.java:194)
        at com.sun.xml.rpc.encoding.SOAPSerializationContext.serializeMultiRefObjects(SOAPSe
rializationContext.java:94)
        at com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:477)
        at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:59)
        at com.sun.xml.rpc.client.dii.CallInvokerImpl.doInvoke(CallInvokerImpl.java:61)
        at com.sun.xml.rpc.client.dii.BasicCall.invoke(BasicCall.java:353)
        at com.sun.xml.rpc.client.dii.CallInvocationHandler.doCall(CallInvocationHandler.jav
a:99)
        at com.sun.xml.rpc.client.dii.CallInvocationHandler.invoke(CallInvocationHandler.jav
a:71)
        at $Proxy0.order(Unknown Source)
        at FogWSDynClient.main(FogWSDynClient.java:133)

What is the reason for this exception ? Any help and suggestions greatly appreciated.

Regards
Narinder
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@jax-rpc.dev.java.net For additional commands, e-mail: users-help@jax-rpc.dev.java.net


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@jax-rpc.dev.java.net
For additional commands, e-mail: users-help@jax-rpc.dev.java.net

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jax-rpc.dev.java.net
For additional commands, e-mail: users-help_at_jax-rpc.dev.java.net