cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: Question about ClientProxyImpl
Date Tue, 13 Apr 2010 17:30:49 GMT
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 <josh.cummings@gmail.com>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 <jungwoo3687@hotmail.com
> >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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message