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 > >