You will have to modify "getCountryCodeList" method in wrapper to return a
list or can modify the code as below:

resultMap.put("countryCode",
UtilMisc.toList(wraper.getCountryCodeList(login, password)));

And when you try to retrieve "countryCode", you will have to iterate this
list and get your array object.

There is no way to define an Array as IN/OUT parameter in a service
definition as far as I know.


-----Original Message-----
From: Vinu Varghese [mailto:[email protected]] 
Sent: Tuesday, February 03, 2009 3:19 PM
To: [email protected]
Subject: Re: OUT Parameter as Array

public CountryCode[] getCountryCodeList(String login, String password)

this is the method in wrapper

........................................
<signature>
   <full-name> Vinu Varghese </full-name>
   <company-email> [email protected] </company-email>
   <company-website> www.x-minds.org </company-website>
   <big-words>
    Success always occurs in private, and failure in full view.
    </big-words>
   <company-name-big>
\/      ._ _   o  ._    _|   _
/\  ~~  | | |  |  | |  (_|  _\

    </company-name-big>
</signature>



Nikita Shinde wrote:
> As per the error ...wraper.getCountryCodeList(login, password) method
seems
> to return just a CountryCode object and not an array.
>
> Can you please verify what does wraper.getCountryCodeList(login, password)
> return?
>
>
> -----Original Message-----
> From: Vinu Varghese [mailto:[email protected]] 
> Sent: Tuesday, February 03, 2009 3:04 PM
> To: [email protected]
> Subject: Re: OUT Parameter as Array
>
> Hi
> Please check this
>
> Service definition
>
> <service name="customCDCountryCodeList" engine="java"
>   location="com.lb.xminds.services.CustoCDService" 
> invoke="getCountryCodeList">
>   <description> Get the country codes </description>
>   <attribute name="login" type="String" mode="IN"
>    optional="false" />
>   <attribute name="password" type="String" mode="IN"
>    optional="false" />
>   <attribute name="countryCode" type="List" mode="OUT"
>    optional="false" />
>   
>  </service>
>
> public static Map getCountryCodeList(DispatchContext dctx, Map context)
>     {
>         Map resultMap = null;
>         try
>         {
>             String login = (String) context.get("login");
>             String password = (String) context.get("password");
>             CustomCDWraper wraper = new CustomCDWraperImpl();
>             resultMap = ServiceUtil.returnSuccess();
>
>           // Here this will be an array of type CountryCode
>             resultMap.put("countryCode", 
> wraper.getCountryCodeList(login, password));
>
>             log.info("*************** Country Code List Completed 
> ****************");
>         }
>         catch (Exception e)
>         {
>             log.error("Error", e);
>             resultMap = ServiceUtil.returnError("Failed to connect");
>         }
>         return resultMap;
>     }
>
> TestCase to test this
>
>  public void testCountryCodeList() throws Exception
>     {
>         Map<String, Object> ctx = FastMap.newInstance();
>         ctx.put("login", "customcd_test");
>         ctx.put("password", "CustomCD");
>         Map res = dispatcher.runSync("customCDCountryCodeList", ctx);
>          List ls= (List)res.get("countryCode");
>          log.info("################ code" + ls);
>     }
>
> ........................................
> <signature>
>    <full-name> Vinu Varghese </full-name>
>    <company-email> [email protected] </company-email>
>    <company-website> www.x-minds.org </company-website>
>    <big-words>
>     Success always occurs in private, and failure in full view.
>     </big-words>
>    <company-name-big>
> \/      ._ _   o  ._    _|   _
> /\  ~~  | | |  |  | |  (_|  _\
>
>     </company-name-big>
> </signature>
>
>
>
> Nikita Shinde wrote:
>   
>> Can you paste the service definition and the code snippet here?
>>
>> -----Original Message-----
>> From: Vinu Varghese [mailto:[email protected]] 
>> Sent: Tuesday, February 03, 2009 2:08 PM
>> To: [email protected]
>> Subject: Re: OUT Parameter as Array
>>
>> Hi
>>
>>  I tried this, but got
>>  Exception: org.ofbiz.service.ServiceValidationException
>>      [java] Message: Type check failed for field 
>> [customCDCountryCodeList.countryCode]; expected type is [List]; actual 
>> type is [[Lcom.lb.xminds.services.customcd.orderreceiver.CountryCode;]
>>
>> Any help?
>>
>> regards
>> Vinu
>>
>> ........................................
>> <signature>
>>    <full-name> Vinu Varghese </full-name>
>>    <company-email> [email protected] </company-email>
>>    <company-website> www.x-minds.org </company-website>
>>    <big-words>
>>     Success always occurs in private, and failure in full view.
>>     </big-words>
>>    <company-name-big>
>> \/      ._ _   o  ._    _|   _
>> /\  ~~  | | |  |  | |  (_|  _\
>>
>>     </company-name-big>
>> </signature>
>>
>>
>>
>> Nikita Shinde wrote:
>>   
>>     
>>> Hi Vinu,
>>>
>>>         You can use the following in your service definition 
>>>
>>>         <attribute name="results" type="List" mode="OUT"
>>>     
>>>       
>> optional="false"/>
>>   
>>     
>>> Kind Regards,
>>> Nikita Shinde
>>> Amicon Technologies Pvt. Ltd., Mumbai, India.
>>> India's No. 1 OFBiz Services Provider
>>>
>>> -----Original Message-----
>>> From: Vinu Varghese [mailto:[email protected]] 
>>> Sent: Tuesday, February 03, 2009 1:31 PM
>>> To: [email protected]
>>> Subject: OUT Parameter as Array
>>>
>>> Hi all,
>>>
>>>  I am creating a ofbiz java service, is there any option I can pass an 
>>> Array of Objects as OUT parameter?
>>>
>>> regards
>>> Vinu
>>>
>>>   
>>>     
>>>       
>>   
>>     
>
>
>   

Reply via email to