axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rodrigo Asensio" <rasen...@gmail.com>
Subject Re: Problem with a simple Object[] in RPCServiceClient
Date Wed, 10 Dec 2008 16:36:57 GMT
the most accurate test for my case should be the testCompanyArray()
where it converts doing something like this

ArrayList resobj = new ArrayList();
resobj.add(Struct_cards[].class);
(Class[])resobj.toArray(new Class[resobj.size()])

but the result is the same...  below I'm posting the wsdl and extra
info that might help (me  :))

results	Object[1]  (id=83)	
	[0]	Struct_cards  (id=84)	
		card_delegate	null	
		card_expire_date	null	
		card_id	null	
		card_lfd	null	
		card_name	null	
		card_type	null	
		usrfld1	null	

ws created by Macromedia ColdFusion MX version 7,0,2,142559
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="Struct_cards">
−
<sequence>
<element name="card_delegate" nillable="true" type="xsd:string"/>
<element name="card_expire_date" nillable="true" type="xsd:string"/>
<element name="card_id" nillable="true" type="xsd:string"/>
<element name="card_lfd" nillable="true" type="xsd:string"/>
<element name="card_name" nillable="true" type="xsd:string"/>
<element name="card_type" nillable="true" type="xsd:string"/>
<element name="usrfld1" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
−
<complexType name="ArrayOfStruct_cards">
−
<complexContent>
−
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="impl:Struct_cards[]"/>
</restriction>
</complexContent>
</complexType>




Rodrigo Asensio
rasensio@gmail.com
http://www.rodrigoasensio.com
"To err is human, but to really screw up requires the root password."



On Wed, Dec 10, 2008 at 2:11 PM, Deepal Jayasinghe <deepal@opensource.lk> wrote:
> Have a look at following class , it does what you want to do
>
> https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java
>
>> Class[] returnTypes = new Class[]{(Struct_cards[])}
>> this don't compile because the objects inside the array must be Class
>> type, and I already tried that one
>>
>> Class[] returnTypes = new Class[]{Struct_cards[].class}
>>
>>
>> Rodrigo Asensio
>> rasensio@gmail.com
>> http://www.rodrigoasensio.com
>> "To err is human, but to really screw up requires the root password."
>>
>>
>>
>> On Wed, Dec 10, 2008 at 12:50 PM, Deepal Jayasinghe
>> <deepal@opensource.lk> wrote:
>>
>>>> Can't return a simple Object[]
>>>>
>>>> axis2 141
>>>>
>>>> client code:
>>>> ----------------
>>>>
>>>>               RPCServiceClient serviceClient = new RPCServiceClient();
>>>>               Options options = serviceClient.getOptions();
>>>>               EndpointReference targetEPR = new EndpointReference(URL);
>>>>               options.setTo(targetEPR);
>>>>               options.setTimeOutInMilliSeconds(TIMEOUT);
>>>>
>>>>               QName actionQ = new QName(NAMESPACE, action);
>>>>               Class[] returnTypes = new Class[] { Struct_cards.class }; 
 //
>>>>
>>> Class[] returnTypes = new Class[]{(Struct_cards[])}
>>>
>>> would work.
>>>
>>>> also
>>>> tried  Struct_cards[].class
>>>>               Object[] results = serviceClient.invokeBlocking(actionQ, params,
returnTypes);
>>>>
>>>> It returns an array of 1 element Struct_cards with all its values
>>>> empty, below the XML response and the bean code.
>>>> I saw that might be a problem of axis2 converting simple object
>>>> arrays, but I didn't found any proof. Any help will be appreciated.
>>>>
>>>>
>>>> xml returns :
>>>> -----------------
>>>>
>>>> <get_cardsResponse
>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>>>> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>>>>    <get_cardsReturn
>>>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>>>> xmlns:ns1="http://icu_test.dev"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> soapenc:arrayType="ns1:struct_cards[2]" xsi:type="soapenc:Array">
>>>>     <get_cardsReturn xsi:type="ns1:struct_cards">
>>>>      <card_delegate xsi:type="xsd:string">X</card_delegate>
>>>>      <card_expire_date xsi:type="xsd:string">XXXX</card_expire_date>
>>>>      <card_id xsi:type="xsd:string">XXXXXXXXXXXXX</card_id>
>>>>      <card_lfd xsi:type="xsd:string">xxxx</card_lfd>
>>>>      <card_name xsi:type="xsd:string">Rodrigo Asensio</card_name>
>>>>      <card_type xsi:type="xsd:string">1</card_type>
>>>>      <usrfld1 xsi:type="xsd:string"></usrfld1>
>>>>     </get_cardsReturn>
>>>>     <get_cardsReturn xsi:type="ns1:struct_cards">
>>>>      <card_delegate xsi:type="xsd:string">x</card_delegate>
>>>>      <card_expire_date xsi:type="xsd:string">xxxxx</card_expire_date>
>>>>      <card_id xsi:type="xsd:string">xxxxxxxxxxxxxxxxxxxxxxxxx</card_id>
>>>>      <card_lfd xsi:type="xsd:string">xxxx</card_lfd>
>>>>      <card_name xsi:type="xsd:string">Rodrigo Asensio</card_name>
>>>>      <card_type xsi:type="xsd:string">1</card_type>
>>>>      <usrfld1 xsi:type="xsd:string"></usrfld1>
>>>>     </get_cardsReturn>
>>>>    </get_cardsReturn>
>>>>   </get_cardsResponse>
>>>>
>>>> bean code: (very basic)
>>>> ---------------
>>>>
>>>> public class Struct_cards {
>>>>       protected java.lang.String card_delegate;
>>>>       protected java.lang.String card_expire_date;
>>>>       protected java.lang.String card_id;
>>>>       protected java.lang.String card_lfd;
>>>>       protected java.lang.String card_name;
>>>>       protected java.lang.String card_type;
>>>>       protected java.lang.String usrfld1;
>>>>
>>>>       public Struct_cards() {}
>>>>
>>>>       public Struct_cards(String card_delegate, String card_expire_date,
>>>> String card_id, String card_lfd, String card_name,
>>>>                       String card_type, String usrfld1) {
>>>>               this.card_delegate = card_delegate;
>>>>               this.card_expire_date = card_expire_date;
>>>>               this.card_id = card_id;
>>>>               this.card_lfd = card_lfd;
>>>>               this.card_name = card_name;
>>>>               this.card_type = card_type;
>>>>               this.usrfld1 = usrfld1;
>>>>       }
>>>>
>>>>       public String getCard_delegate() {
>>>>               return card_delegate;
>>>>       }
>>>>
>>>>       public void setCard_delegate(String card_delegate) {
>>>>               this.card_delegate = card_delegate;
>>>>       }
>>>>
>>>>       public String getCard_expire_date() {
>>>>               return card_expire_date;
>>>>       }
>>>>
>>>>       public void setCard_expire_date(String card_expire_date) {
>>>>               this.card_expire_date = card_expire_date;
>>>>       }
>>>>
>>>>       public String getCard_id() {
>>>>               return card_id;
>>>>       }
>>>>
>>>>       public void setCard_id(String card_id) {
>>>>               this.card_id = card_id;
>>>>       }
>>>>
>>>>       public String getCard_lfd() {
>>>>               return card_lfd;
>>>>       }
>>>>
>>>>       public void setCard_lfd(String card_lfd) {
>>>>               this.card_lfd = card_lfd;
>>>>       }
>>>>
>>>>       public String getCard_name() {
>>>>               return card_name;
>>>>       }
>>>>
>>>>       public void setCard_name(String card_name) {
>>>>               this.card_name = card_name;
>>>>       }
>>>>
>>>>       public String getCard_type() {
>>>>               return card_type;
>>>>       }
>>>>
>>>>       public void setCard_type(String card_type) {
>>>>               this.card_type = card_type;
>>>>       }
>>>>
>>>>       public String getUsrfld1() {
>>>>               return usrfld1;
>>>>       }
>>>>
>>>>       public void setUsrfld1(String usrfld1) {
>>>>               this.usrfld1 = usrfld1;
>>>>       }
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Rodrigo Asensio
>>>> rasensio@gmail.com
>>>> http://www.rodrigoasensio.com
>>>> "To err is human, but to really screw up requires the root password."
>>>>
>>>>
>>>>
>>> --
>>> Thank you!
>>>
>>>
>>> http://blogs.deepal.org
>>>
>>>
>>>
>>
>>
>
> --
> Thank you!
>
>
> http://blogs.deepal.org
>
>

Mime
View raw message