[ https://issues.apache.org/jira/browse/CXF-7825?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16610446#comment-16610446 ]
Sergey Beryozkin commented on CXF-7825: --------------------------------------- I saw that but that is prob invalid, a query type for beans might work for multiparts only, it is not really well defined. To be honest I see no problems with the 2 methods. If you prefer to have a single method then consider doing it only if a (new) option allowing for it is set, IMHO it is not ideal collapsing them into a single method for the reason I mentioned above, besides it will break some existing code if you do it without and option, thanks > wadl2java: support multiple representations of the same element > --------------------------------------------------------------- > > Key: CXF-7825 > URL: https://issues.apache.org/jira/browse/CXF-7825 > Project: CXF > Issue Type: Bug > Components: JAX-RS, Tooling > Affects Versions: 3.2.6 > Reporter: Andrei Ivanov > Priority: Major > > Hi, > I have little experience using WADL and I'm trying to define a resource > which accepts a request parameter with multiple representations (JSON and > XML): > {code:xml} > <resource id="PaymentManagementService" path="/paymentmanagement"> > <resource path="/transaction/{uuid}"> > <doc>Store a Payment corresponding to the specified transaction</doc> > <param name="uuid" style="template" type="ns:uuid" /> > <method id="storePayment" name="PUT"> > <request> > <representation mediaType="application/json" > element="ns:Payment" /> > <representation mediaType="application/xml" > element="ns:Payment" /> > </request> > <response status="200" > > <doc>Returns the newly stored payment</doc> > <representation mediaType="application/json" > element="ns:Payment" /> > <representation mediaType="application/xml" > element="ns:Payment" /> > </response> > <response status="500" > > <doc>Storing of the payment failed</doc> > <representation mediaType="application/json" > element="ns:ExceptionDetails" /> > <representation mediaType="application/xml" > element="ns:ExceptionDetails" /> > </response> > </method> > </resource> > </resource> > {code} > As far as I see, after CXF-3797, the generator doesn't handle this scenario, > considering them as different types. > I've also tried this way, which I'm not even sure is correct, but the > generator seems to generate correct code, which is a single method which > consumes the 2 media types: > {code:xml} > <representation mediaType="application/json"> > <param name="payment" style="query" type="ns:Payment" /> > </representation> > <representation mediaType="application/xml"> > <param name="payment" style="query" type="ns:Payment" /> > </representation> > {code} > {code:java} > @Path("/paymentmanagement") > public interface PaymentManagementService { > /** > * @return Returns the newly stored payment > */ > @PUT > @Consumes({"application/json", "application/xml" }) > @Produces({"application/json", "application/xml" }) > @Path("/transaction/{uuid}") > Payment storePayment(@PathParam("uuid") String uuid, Payment payment); > } > {code} > The problem with this approach is that now I'm trying to enable _bean > validation_, but the generator ignores this 2nd approach representations > because it doesn't find an {{element}} attribute on the representations. > Not sure what the solution is, maybe just update the generator to handle the > 1st approach properly. -- This message was sent by Atlassian JIRA (v7.6.3#76005)