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