Sergey, I just wonder if you had a chance to implement this in 2.2.5? Thanks, -Vitaly
Sergey Beryozkin-2 wrote: > > You can still do it even now, but it will require you to do some manual > coding. > You can register a ParameterHandler<ExecuteRequest> and then parse a query > string from within that handler and populate an > ExecuteRequest instance accordingly... But I'll see if I can enhance the > implementation a bit till tomorrow evening > > Sergey > >> >> 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¶ms.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¶ms=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¶ms.param1=a¶ms.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. >> > > > -- View this message in context: http://old.nabble.com/CXF-REST-Map%3CString%2C-String%3E-as-argument-can-it-handle-it--tp26312629p26586725.html Sent from the cxf-user mailing list archive at Nabble.com.
