You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Yu L <yu...@generationetech.com> on 2009/09/03 19:20:02 UTC

CXF dynamic client can not handle array of complex objects as return value?

Hey,

I am using CXF DynamicClientFactory from Groovy to call a web service
developed with apache Axis2. The method has this signature:

Pair[] executeRunbook(String token, Pair[] params)

Pair is a complex object defined as:

public class Pair {
        private String name;
        private String value;
       
        public String getName()
        {
                return name;
        }
       
        public void setName(String n)
        {
                name = n;
        }
       
        public String getValue()
        {
                return value;
        }
       
        public void setValue(String v)
        {
                value = v;
        }
       
        public String toString()
        {
                return "(" + name + "," + value + ")";
        }
}
 
When executeRunbook() method was called from Groovy script, i.e. " results =
client.invoke( "executeRunbook", token, list1); ", its return value ,
"results", was not an array of Pair objects as defined by its method
signature, instead it always had a value which was the first Pair element of
the array.

This was log output for about call:

2009-09-01 18:16:39,290 DEBUG [Thread-49]
(sun.reflect.NativeMethodAccessorImpl:?) - ++++++++++++ results =
com.xpn.xwiki.plugin.resolve.xsd.Pair@1b6903f

 
It seems CXF dynamic client was not able to handle an array of complex
object as return value from a web service method call.

Is anybody aware of the similar problem with CXF dynamic client? Is there
any workaround? Thanks in advance.

Attached are WSDL file and Groovy script to show how the call was made.

Yu 
http://www.nabble.com/file/p25280407/WebserviceListener.xml
WebserviceListener.xml  http://www.nabble.com/file/p25280407/DCFGroovy
DCFGroovy 


-- 
View this message in context: http://www.nabble.com/CXF-dynamic-client-can-not-handle-array-of-complex-objects-as-return-value--tp25280407p25280407.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: CXF dynamic client can not handle array of complex objects as return value?

Posted by Yu L <yu...@generationetech.com>.
Looks they are quite similar. Here is the method signature after running
wsdl2java:

    @ResponseWrapper(localName = "executeRunbookResponse", targetNamespace =
"http://http://www.resolve-systems.com/resolve/WebServiceListener/xsd",
className =
"http.www_resolve_systems_com.resolve.webservicelistener.xsd.ExecuteRunbookResponse")
    @RequestWrapper(localName = "executeRunbook", targetNamespace =
"http://http://www.resolve-systems.com/resolve/WebServiceListener/xsd",
className =
"http.www_resolve_systems_com.resolve.webservicelistener.xsd.ExecuteRunbook")
    @WebResult(name = "return", targetNamespace =
"http://http://www.resolve-systems.com/resolve/WebServiceListener/xsd")
    @WebMethod(action = "urn:executeRunbook")
    public java.util.List<com.xpn.xwiki.plugin.resolve.xsd.Pair>
executeRunbook(
        @WebParam(name = "token", targetNamespace =
"http://http://www.resolve-systems.com/resolve/WebServiceListener/xsd")
        java.lang.String token,
        @WebParam(name = "params", targetNamespace =
"http://http://www.resolve-systems.com/resolve/WebServiceListener/xsd")
        java.util.List<com.xpn.xwiki.plugin.resolve.xsd.Pair> params
    );


It should return java.util.List<com.xpn.xwiki.plugin.resolve.xsd.Pair>, not
com.xpn.xwiki.plugin.resolve.xsd.Pair

Does anybody when the bug will fixed ? Thanks.

Yu



dkulp wrote:
> 
> 
> I wonder if this is somehow related to:
> https://issues.apache.org/jira/browse/CXF-2415
> 
> (mostly just thinking)
> 
> Dan
> 
> 
> 
> 
> On Thu September 3 2009 1:20:02 pm Yu L wrote:
>> Hey,
>> 
>> I am using CXF DynamicClientFactory from Groovy to call a web service
>> developed with apache Axis2. The method has this signature:
>> 
>> Pair[] executeRunbook(String token, Pair[] params)
>> 
>> Pair is a complex object defined as:
>> 
>> public class Pair {
>>         private String name;
>>         private String value;
>> 
>>         public String getName()
>>         {
>>                 return name;
>>         }
>> 
>>         public void setName(String n)
>>         {
>>                 name = n;
>>         }
>> 
>>         public String getValue()
>>         {
>>                 return value;
>>         }
>> 
>>         public void setValue(String v)
>>         {
>>                 value = v;
>>         }
>> 
>>         public String toString()
>>         {
>>                 return "(" + name + "," + value + ")";
>>         }
>> }
>> 
>> When executeRunbook() method was called from Groovy script, i.e. "
>> results
>>  = client.invoke( "executeRunbook", token, list1); ", its return value ,
>>  "results", was not an array of Pair objects as defined by its method
>>  signature, instead it always had a value which was the first Pair
>> element
>>  of the array.
>> 
>> This was log output for about call:
>> 
>> 2009-09-01 18:16:39,290 DEBUG [Thread-49]
>> (sun.reflect.NativeMethodAccessorImpl:?) - ++++++++++++ results =
>> com.xpn.xwiki.plugin.resolve.xsd.Pair@1b6903f
>> 
>> 
>> It seems CXF dynamic client was not able to handle an array of complex
>> object as return value from a web service method call.
>> 
>> Is anybody aware of the similar problem with CXF dynamic client? Is there
>> any workaround? Thanks in advance.
>> 
>> Attached are WSDL file and Groovy script to show how the call was made.
>> 
>> Yu
>> http://www.nabble.com/file/p25280407/WebserviceListener.xml
>> WebserviceListener.xml  http://www.nabble.com/file/p25280407/DCFGroovy
>> DCFGroovy
>> 
> 
> -- 
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
> 
> 

-- 
View this message in context: http://www.nabble.com/CXF-dynamic-client-can-not-handle-array-of-complex-objects-as-return-value--tp25280407p25298808.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: CXF dynamic client can not handle array of complex objects as return value?

Posted by Daniel Kulp <dk...@apache.org>.
I wonder if this is somehow related to:
https://issues.apache.org/jira/browse/CXF-2415

(mostly just thinking)

Dan




On Thu September 3 2009 1:20:02 pm Yu L wrote:
> Hey,
> 
> I am using CXF DynamicClientFactory from Groovy to call a web service
> developed with apache Axis2. The method has this signature:
> 
> Pair[] executeRunbook(String token, Pair[] params)
> 
> Pair is a complex object defined as:
> 
> public class Pair {
>         private String name;
>         private String value;
> 
>         public String getName()
>         {
>                 return name;
>         }
> 
>         public void setName(String n)
>         {
>                 name = n;
>         }
> 
>         public String getValue()
>         {
>                 return value;
>         }
> 
>         public void setValue(String v)
>         {
>                 value = v;
>         }
> 
>         public String toString()
>         {
>                 return "(" + name + "," + value + ")";
>         }
> }
> 
> When executeRunbook() method was called from Groovy script, i.e. " results
>  = client.invoke( "executeRunbook", token, list1); ", its return value ,
>  "results", was not an array of Pair objects as defined by its method
>  signature, instead it always had a value which was the first Pair element
>  of the array.
> 
> This was log output for about call:
> 
> 2009-09-01 18:16:39,290 DEBUG [Thread-49]
> (sun.reflect.NativeMethodAccessorImpl:?) - ++++++++++++ results =
> com.xpn.xwiki.plugin.resolve.xsd.Pair@1b6903f
> 
> 
> It seems CXF dynamic client was not able to handle an array of complex
> object as return value from a web service method call.
> 
> Is anybody aware of the similar problem with CXF dynamic client? Is there
> any workaround? Thanks in advance.
> 
> Attached are WSDL file and Groovy script to show how the call was made.
> 
> Yu
> http://www.nabble.com/file/p25280407/WebserviceListener.xml
> WebserviceListener.xml  http://www.nabble.com/file/p25280407/DCFGroovy
> DCFGroovy
> 

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog