cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vickatvuuch <vlisov...@gmail.com>
Subject Re: CXF REST Map<String, String> as argument can it handle it?
Date Thu, 12 Nov 2009 16:59:08 GMT

Yes, I guess I will use POST in this case and this body does fill in my map.
It would be nice to allow it on the Url as well. 
ie: params.k1=v1&params.k2=v2 etc.

<ns1:ExecuteRequest ns2:type="ns1:ExecuteRequest"
xmlns:ns1="http://scripto.ports.v1.webservices.foo.com"
xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance">
<ns1:params>

      <ns3:entry xmlns:ns3="urn:org.apache.cxf.aegis.types">

         <ns3:key>k1</ns3:key>

         <ns3:value>v1</ns3:value>

      </ns3:entry>

      <ns3:entry xmlns:ns3="urn:org.apache.cxf.aegis.types">

         <ns3:key>k2</ns3:key>

         <ns3:value>v2</ns3:value>

      </ns3:entry>

   </ns1:params>
</ns1:ExecuteRequest>


Sergey Beryozkin-2 wrote:
> 
> If you pass the information as a POST body then it should work (Aegis
> should handle it or JAXB + XmlJavaTypeAdapter on the field of 
> type Map). If you pass it as a query, something like
> 
> ?name=scriptName&params=a%3DaValue%26b%3DbValue
> 
> then no, params won't be injected into a Map...Dan is plaaning to do a
> build tomorrow evening or so... I'll try to do a quick 
> update...
> 
> 
> 
> cheers, Sergey
> 
> 
>>
>> Thanks, I understand your suggestion, however the destination of these
>> params
>> is a groovy script which is why I wanted to piece together params as name
>> value pairs
>> and map is what fits best. My understanding that passing a map is an open
>> issue under CXF
>> is it?
>>
>>
>> Sergey Beryozkin-2 wrote:
>>>
>>> Hi,
>>>
>>>>
>>>> Here is spring config:
>>>>
>>>> <jaxrs:server address="/v1/rest">
>>>> <jaxrs:serviceBeans>
>>>> <ref bean="scriptoServiceBean"/>
>>>> </jaxrs:serviceBeans>
>>>>
>>>> <jaxrs:providers>
>>>> <ref bean="aegisProvider"/>
>>>> </jaxrs:providers>
>>>>
>>>> Here is the impl method:
>>>>
>>>>  @POST
>>>>  @Path("/execute")
>>>>  public ExecuteResult execute(@QueryParam("") ExecuteRequest req)
>>>>
>>>> and ExecuteRequest bean class:
>>>>
>>>> @XmlRootElement
>>>> public class ExecuteRequest extends WSBaseRequest
>>>> {
>>>>  private String scriptName;
>>>>  private Map<String, String> params;
>>>>
>>>>  getters..
>>>>  setters..
>>>> }
>>>
>>> It won't work, not at the moment. List<String> will be ok, provided you
>>> have a query like scriptName=bar&name=a&name=b.
>>> But it's not possible to 'connect' a sequence of name/value pairs with a
>>> Map instance at the moment. Can you please post a sample
>>> query so that I can see why you expect a Map being injected ? Also note
>>> that no JAXB is involved when parameter beans are populated.
>>>
>>> What should work well is introducing a ParameterBean and have
>>> public class ExecuteRequest extends WSBaseRequest
>>> {
>>>   private String scriptName;
>>>   private ParametersBean params;
>>>>
>>>>  getters..
>>>>  setters..
>>> }
>>>
>>> and then do scriptName=bar&params.param1=a&params.param2=b
>>>
>>> where ParametersBean has setters/getters for param1 & param2
>>>
>>> cheers, Sergey
>>>
>>>>
>>>>
>>>> Sergey Beryozkin-2 wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> I really need more information please. Which bean, a JAXB one, with
>>>>> one
>>>>> of
>>>>> its fields being of Map type ?
>>>>> Is it a form submission ? what is the resource method signature ?
>>>>>
>>>>> thanks, Sergey
>>>>>
>>>>>>
>>>>>> Must be a simple one for anyone already done it.
>>>>>> I have tried it today and couldn't figure out why it would not
>>>>>> initialize my bean with a Map in it, anyone knows the trick?
>>>>>> There seem to be a bug open on this, but I'm not sure if there
>>>>>> is still an issue and if so is there a way to do this?
>>>>>> Tried to post app xml in the POST body and on the Url all ends up
>>>>>> with null set instead of the map with key value pairs.
>>>>>>
>>>>>> Thanks,
>>>>>> -Vitaly
>>>>>> -- 
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/CXF-REST-Map%3CString%2C-String%3E-as-argument-can-it-handle-it--tp26312629p26312629.html
>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> -- 
>>>> View this message in context:
>>>> http://old.nabble.com/CXF-REST-Map%3CString%2C-String%3E-as-argument-can-it-handle-it--tp26312629p26318928.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>>
>>
>> -- 
>> View this message in context: 
>> http://old.nabble.com/CXF-REST-Map%3CString%2C-String%3E-as-argument-can-it-handle-it--tp26312629p26320714.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/CXF-REST-Map%3CString%2C-String%3E-as-argument-can-it-handle-it--tp26312629p26322286.html
Sent from the cxf-user mailing list archive at Nabble.com.


Mime
View raw message