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
[EMAIL PROTECTED]
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 <[EMAIL PROTECTED]> 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
>> [EMAIL PROTECTED]
>> 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
>> <[EMAIL PROTECTED]> 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
>>>> [EMAIL PROTECTED]
>>>> 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
>
>