Re: Problem with a simple Object[] in RPCServiceClient

2008-12-11 Thread Rodrigo Asensio
Finally It was solved. how ?

the ws was done in coldfusion 7 who uses axis1 and there are some
problems with doc-literal and soap encoding. Server side changed the
wsdl and now I can retrieve arrays[] with the same code. Thanks for
helping.
R


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:55 PM, Rodrigo Asensio [EMAIL PROTECTED] wrote:
 Here is the code. Also I'm trying to generate the clients with adb or
 xmlbeans and I'm getting
 [ERROR] Part 'fault' of fault message
 '{http://icu_test.dev}CFCInvocationException' must be defined with
 'element=QName' and not 'type=QName'

 this is a coldfusion axis1 ws. I found that according to the
 specification, fault and header message parts must be defined as
 document/literal, even if the body is defined as RPC style.


 Struct_cards
 --

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


 invoke method
 --

public Object[] invoke() throws Exception {
Object[] params = new Object() {someid};

RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(URL);
options.setTo(targetEPR);
options.setTimeOutInMilliSeconds(TIMEOUT);

QName actionQ = new QName(NAMESPACE, get_cards);
 //  Class[] returnTypes = new Class[] { returnTypeClass };

ArrayList resobj = new ArrayList();
resobj.add(struct_cards[].class);
Class[] ax = (Class[])resobj.toArray(new Class[resobj.size()]);
// Class[] returnTypes = new Class[]{struct_cards.class};
Object[] results = serviceClient.invokeBlocking(actionQ, 
 params, ax);
return results;
}





 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:47 PM, Deepal Jayasinghe [EMAIL PROTECTED] wrote:
 Can you please send me your service code, then I will give you the exact
 solution.

 Deepal

 Rodrigo Asensio wrote:
 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
 

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-11 Thread Deepal Jayasinghe
Oh, good. I though you were using Axis2 at the server side too .
 Finally It was solved. how ?

 the ws was done in coldfusion 7 who uses axis1 and there are some
 problems with doc-literal and soap encoding. Server side changed the
 wsdl and now I can retrieve arrays[] with the same code. Thanks for
 helping.
 R


 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:55 PM, Rodrigo Asensio [EMAIL PROTECTED] wrote:
   
 Here is the code. Also I'm trying to generate the clients with adb or
 xmlbeans and I'm getting
 [ERROR] Part 'fault' of fault message
 '{http://icu_test.dev}CFCInvocationException' must be defined with
 'element=QName' and not 'type=QName'

 this is a coldfusion axis1 ws. I found that according to the
 specification, fault and header message parts must be defined as
 document/literal, even if the body is defined as RPC style.


 Struct_cards
 --

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


 invoke method
 --

public Object[] invoke() throws Exception {
Object[] params = new Object() {someid};

RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(URL);
options.setTo(targetEPR);
options.setTimeOutInMilliSeconds(TIMEOUT);

QName actionQ = new QName(NAMESPACE, get_cards);
 //  Class[] returnTypes = new Class[] { returnTypeClass };

ArrayList resobj = new ArrayList();
resobj.add(struct_cards[].class);
Class[] ax = (Class[])resobj.toArray(new 
 Class[resobj.size()]);
// Class[] returnTypes = new Class[]{struct_cards.class};
Object[] results = serviceClient.invokeBlocking(actionQ, 
 params, ax);
return results;
}





 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:47 PM, Deepal Jayasinghe [EMAIL PROTECTED] wrote:
 
 Can you please send me your service code, then I will give you the exact
 solution.

 Deepal

 Rodrigo Asensio wrote:
   
 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   

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-11 Thread Rodrigo Asensio
nop, I said

this is a coldfusion axis1 ws. I found that according to the
specification, fault and header message parts must be defined as
document/literal, even if the body is defined as RPC style.

regards and thanks


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:55 PM, Rodrigo Asensio [EMAIL PROTECTED] wrote:
 Here is the code. Also I'm trying to generate the clients with adb or
 xmlbeans and I'm getting
 [ERROR] Part 'fault' of fault message
 '{http://icu_test.dev}CFCInvocationException' must be defined with
 'element=QName' and not 'type=QName'

 this is a coldfusion axis1 ws. I found that according to the
 specification, fault and header message parts must be defined as
 document/literal, even if the body is defined as RPC style.


 Struct_cards
 --

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


 invoke method
 --

public Object[] invoke() throws Exception {
Object[] params = new Object() {someid};

RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(URL);
options.setTo(targetEPR);
options.setTimeOutInMilliSeconds(TIMEOUT);

QName actionQ = new QName(NAMESPACE, get_cards);
 //  Class[] returnTypes = new Class[] { returnTypeClass };

ArrayList resobj = new ArrayList();
resobj.add(struct_cards[].class);
Class[] ax = (Class[])resobj.toArray(new Class[resobj.size()]);
// Class[] returnTypes = new Class[]{struct_cards.class};
Object[] results = serviceClient.invokeBlocking(actionQ, 
 params, ax);
return results;
}





 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:47 PM, Deepal Jayasinghe [EMAIL PROTECTED] wrote:
 Can you please send me your service code, then I will give you the exact
 solution.

 Deepal

 Rodrigo Asensio wrote:
 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   

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-10 Thread Deepal Jayasinghe

 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:stringX/card_delegate
  card_expire_date xsi:type=xsd:string/card_expire_date
  card_id xsi:type=xsd:stringX/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/card_type
  usrfld1 xsi:type=xsd:string/usrfld1
 /get_cardsReturn
 get_cardsReturn xsi:type=ns1:struct_cards
  card_delegate xsi:type=xsd:stringx/card_delegate
  card_expire_date xsi:type=xsd:stringx/card_expire_date
  card_id xsi:type=xsd:stringx/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/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



Re: Problem with a simple Object[] in RPCServiceClient

2008-12-10 Thread Rodrigo Asensio
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:stringX/card_delegate
  card_expire_date xsi:type=xsd:string/card_expire_date
  card_id xsi:type=xsd:stringX/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/card_type
  usrfld1 xsi:type=xsd:string/usrfld1
 /get_cardsReturn
 get_cardsReturn xsi:type=ns1:struct_cards
  card_delegate xsi:type=xsd:stringx/card_delegate
  card_expire_date xsi:type=xsd:stringx/card_expire_date
  card_id xsi:type=xsd:stringx/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/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 

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-10 Thread Deepal Jayasinghe
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:stringX/card_delegate
  card_expire_date xsi:type=xsd:string/card_expire_date
  card_id xsi:type=xsd:stringX/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/card_type
  usrfld1 xsi:type=xsd:string/usrfld1
 /get_cardsReturn
 get_cardsReturn xsi:type=ns1:struct_cards
  card_delegate xsi:type=xsd:stringx/card_delegate
  card_expire_date xsi:type=xsd:stringx/card_expire_date
  card_id xsi:type=xsd:stringx/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/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 

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-10 Thread Rodrigo Asensio
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_datenull
card_id null
card_lfdnull
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:stringX/card_delegate
  card_expire_date xsi:type=xsd:string/card_expire_date
  card_id xsi:type=xsd:stringX/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/card_type
  usrfld1 xsi:type=xsd:string/usrfld1
 /get_cardsReturn
 get_cardsReturn xsi:type=ns1:struct_cards
  card_delegate xsi:type=xsd:stringx/card_delegate
  card_expire_date xsi:type=xsd:stringx/card_expire_date
  card_id xsi:type=xsd:stringx/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/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 

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-10 Thread Deepal Jayasinghe
Can you please send me your service code, then I will give you the exact
solution.

Deepal

Rodrigo Asensio wrote:
 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_datenull
   card_id null
   card_lfdnull
   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:stringX/card_delegate
  card_expire_date xsi:type=xsd:string/card_expire_date
  card_id xsi:type=xsd:stringX/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/card_type
  usrfld1 xsi:type=xsd:string/usrfld1
 /get_cardsReturn
 get_cardsReturn xsi:type=ns1:struct_cards
  card_delegate xsi:type=xsd:stringx/card_delegate
  card_expire_date xsi:type=xsd:stringx/card_expire_date
  card_id xsi:type=xsd:stringx/card_id
  card_lfd xsi:type=xsd:string/card_lfd
  card_name xsi:type=xsd:stringRodrigo Asensio/card_name
  card_type xsi:type=xsd:string1/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;
   

Re: Problem with a simple Object[] in RPCServiceClient

2008-12-10 Thread Rodrigo Asensio
Here is the code. Also I'm trying to generate the clients with adb or
xmlbeans and I'm getting
[ERROR] Part 'fault' of fault message
'{http://icu_test.dev}CFCInvocationException' must be defined with
'element=QName' and not 'type=QName'

this is a coldfusion axis1 ws. I found that according to the
specification, fault and header message parts must be defined as
document/literal, even if the body is defined as RPC style.


Struct_cards
--

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


invoke method
--

public Object[] invoke() throws Exception {
Object[] params = new Object() {someid};

RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(URL);
options.setTo(targetEPR);
options.setTimeOutInMilliSeconds(TIMEOUT);

QName actionQ = new QName(NAMESPACE, get_cards);
//  Class[] returnTypes = new Class[] { returnTypeClass };

ArrayList resobj = new ArrayList();
resobj.add(struct_cards[].class);
Class[] ax = (Class[])resobj.toArray(new Class[resobj.size()]);
// Class[] returnTypes = new Class[]{struct_cards.class};
Object[] results = serviceClient.invokeBlocking(actionQ, 
params, ax);
return results;
}





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:47 PM, Deepal Jayasinghe [EMAIL PROTECTED] wrote:
 Can you please send me your service code, then I will give you the exact
 solution.

 Deepal

 Rodrigo Asensio wrote:
 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_datenull
   card_id null
   card_lfdnull
   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