there was a regression indeed - I fixed it, with tests added cheers, Sergey
On Tue, Apr 13, 2010 at 6:30 PM, Sergey Beryozkin <[email protected]>wrote: > Hi > > I'm not sure where a regression might've been introduced but I'll > investigate. I think I have a test for proxies using query and path param > beans, but no form param beans > > cheers, Sergey > > > On Mon, Apr 12, 2010 at 11:54 PM, Josh Cummings > <[email protected]>wrote: > >> For what it is worth, we experienced the same thing. >> >> We originally had only one method: >> >> @POST >> @Path("/myResource/{c}/{d}") >> @Consumes({"application/x-www-form-urlencoded"}) >> public E getE(@FormParam("") A a, @PathParam("") B b); >> >> We had client Java code and form posts using the one method. Upon >> upgrading >> to 2.2.7, it appears that the handleForm method gets the String name of >> our >> object instead of the object itself. >> >> The workaround that we found was to split the code into two methods: >> >> @POST >> @Path("/myResource/{c}/{d}") >> @Consumes({"application/xml", "application/json"}) >> public E getE(A a, @PathParam("") B b); >> >> @POST >> @Path("/myResource/{c}/{d}") >> @Consumes({"application/x-www-form-urlencoded"}) >> public E getEForm(@FormParam("") A a, @PathParam("") B b); >> >> I'm also not certain if this is a bug. >> >> Thanks, >> Josh >> >> >> On Mon, Apr 12, 2010 at 11:39 AM, Jungwoo Jang <[email protected] >> >wrote: >> >> > >> > Hello all, >> > >> > I apologize in advance if this is the incorrect mailing list to post >> this >> > question to. >> > >> > I have a question around whether some behavior I am seeing is a bug or >> if >> > it is functioning as designed. >> > >> > I am trying out the parameter bean example in the cxf jaxrs >> documentation. >> > Note the following has been simplified, since I am only worried about >> > @FormParam types. >> > @Path("/customer/{id}") >> > public class CustomerService { >> > >> > @POST >> > public Response addCustomerOrder(@FormParam("") OrderBean bean) { >> > ... >> > } >> > } >> > >> > public class OrderBean { >> > public void setId(Long id) {...} >> > public void setWeight(int w) {...} >> > } >> > >> > So, this works when I use a browser as the client. >> > But when I use the client runtime library it does not. >> > >> > CustomerService service = JAXRSClientFactory.create(...); >> > service.addCustomerOrder(new OrderBean(123, 150)); >> > >> > After debugging through the code, it seems like the >> > >> rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java's >> > handleForm(...) method is doing something it shouldn't be doing. >> > >> > FormUtils.addPropertyToForm(form, p.getName(), >> > params[p.getIndex()].toString()); >> > >> > The params[p.getIndex()] is the OrderBean that I have passed in. But >> then >> > this code converts it to a String and then in the >> > FormUtils.addPropertyToForm method, it makes an >> > InjectionUtils.extractValuesFromBean(value, "") call, where the value is >> the >> > toString() value of the OrderBean. >> > >> > So, the http request has bytes=somebytes, when I was expecting id=123 >> and >> > weight=150. >> > >> > Here is the jira ticket that I believe was why this code was introduced. >> https://issuesowever, >> > . >> apache.org/jira/browse/CXF-2389?page=com.atlassian.jira.plugin.ext.subversion%3Asubversion-commits-tabpanel >> < >> https://issues.apache.org/jira/browse/CXF-2389?page=com.atlassian.jira.plugin.ext.subversion%3Asubversion-commits-tabpanel >> > >> > >> > So, is this bug? I did a search for jira tickets to see if this was >> > already a known issue. If it is a bug, should I file a new jira ticket >> and >> > link it to the ticket mentioned above? >> > >> > Thanks, >> > Jungwoo >> > >> > >> > _________________________________________________________________ >> > The New Busy think 9 to 5 is a cute idea. Combine multiple calendars >> with >> > Hotmail. >> > >> > >> http://www.windowslive.com/campaign/thenewbusy?tile=multicalendar&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_5 >> > >> >> >> >> -- >> Josh Cummings >> The Pi-Dye T-Shirt Shop >> http://www.pidye.com >> 801-556-2751 >> >> Learn how to be a part of the biggest redistribution of pi in the history >> of >> mankind at www.pidye.com >> > >
