Hi

ok, I understand now. Adding a @QueryParam to RequestWrapper means
that request query  parameters will need to
be injected into an instance of RequestWrapper. In this case
RequestWrapper does not represent a request body and thus no grammar
is generated for it.

If you remove @QueryParam then the server expects an XML payload coming in

Does it help ?
Sergey

On Tue, May 3, 2011 at 8:17 PM, yhu <[email protected]> wrote:
> Thanks Sergey, you answered the question I plan to to ask  I will check if it
> work.
>
> My original question may be not clear, so I refine it and hope you can help.
>
> I have a simple RESTful web service class:
> @Path("/luckynumbers")
> @Produces("text/plain")
> public class LuckyNumbers {
>    @GET
>    @Path("/getWADL")
>    @Produces("application/xml")
>    @Consumes("application/xml")
>    public String getWADL(@QueryParam("")RequestWrapper arg) {
>        System.out.println(arg);
>        return arg.toString();
>    }
>
>   @XmlRootElement
>    public static class RequestWrapper {
>        List<String> theList;
>        String theRequest;
>
>       @XmlElement(name="listItem")
>        public Collection<String> getTheList() {
>            return theList;
>        }
>
>        public void setTheList(List<String> theList) {
>            this.theList = theList;
>        }
>
>        public String getTheRequest() {
>            return theRequest;
>        }
>
>        public void setTheRequest(String theRequest) {
>            this.theRequest = theRequest;
>        }
>
>       @Override
>       public String toString() {
>           return "RequestWrapper{" +
>                   "theList=" + theList +
>                   ", theRequest='" + theRequest + '\'' +
>                   '}';
>       }
>   }
> }
>
> And the generated WADL (using _?wadl in IE) is:
>  <application xmlns="http://wadl.dev.java.net/2009/02";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";>
>  <grammars />
>  <resources
> base="http://localhost:8080/ws-rest-prototype/services/LuckyNumbersRest";>
>  <resource path="/luckynumbers">
>  <resource path="/getWADL">
>  <method name="GET">
>  <request>
>
>  </request>
>  <response>
>  <representation mediaType="application/xml">
>
>  </representation>
>  </response>
>  </method>
>  </resource>
>  </resource>
>  </resources>
>  </application>
>
> The problem of the WADL is that "theList" in requestWrapper is not
> generated.
>
> I find it is @QueryParam of the method argument causes this, if I remove it,
> the WADL seems good. But without @QueryParam, the web service call fails.
> What is your suggestion?
>
> --
> View this message in context: 
> http://cxf.547215.n5.nabble.com/java-util-List-in-rquest-missed-in-WADL-tp4365634p4368122.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>



-- 
Sergey Beryozkin

Application Integration Division of Talend
http://sberyozkin.blogspot.com

Reply via email to