Hi

The WADL fragment compiles as expected, the following is produced:

/**
 * Created by Apache CXF WadlToJava code generator
**/
package com.bp.bs;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

@Path("/books")
public interface BookResource {

    @POST
    @Consumes("application/octet-stream")
    @Produces("application/octet-stream")
    Response add();

    @DELETE
    @Produces("application/octet-stream")
    @Path("/{isbn}")
    Response deleteIsbn(@PathParam("isbn") String isbn);

    @GET
    @Produces("application/xml")
    @Path("/{isbn}")
    Book getIsbn(@PathParam("isbn") String isbn);

    @PUT
    @Consumes("application/xml")
    @Produces("application/octet-stream")
    @Path("/{isbn}")
    Response update(@PathParam("isbn") String isbn, Book book);

}

Note update() has a 'Book' added in the signature.

Try CXF 2.7.0-SNAPSHOT or CXF 2.6.3-SNAPSHOT (to be released shortly),

Cheers, Sergey


On 28/09/12 11:47, Behzad Pirvali wrote:
Hi Sergey,

Thank You so much for your response.

I was going to reply in the forum so that everyone with my problem could
use your answer.
I have checked both Stack Overflow and cxf-forum, but did not see any
replies there.
That is why I am replying to your email.

1)
With Injecting Request into a class field, you mean using Spring?
But how do I make Spring to know about the incoming Request object?

2)
Do you have any idea on how to get WADL so that generated update(PUT)
interface has both parameter?
Currently, the generated update(...) is:
     - update(@PathParam("isbn") String isbn)
instead of:
     - update(@PathParam("isbn") String isbn, BookState st)

Thank u SO MUCH,
Behzad


Here is the whole WADL:

<application xmlns="http://wadl.dev.java.net/2009/02";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
  xmlns:prefix1="http://bp.com/bs";>
<grammars>
<schema xmlns="http://www.w3.org/2001/XMLSchema";
targetNamespace="http://bp.com/bs";
xmlns:tns="http://bp.com/bs"; elementFormDefault="qualified">
<element name="book">
<complexType>
<sequence>
<element name="isbn" type="string"></element>
<element name="title" type="string"></element>
</sequence>
</complexType>
</element>
</schema>
<!-- <include href="BookService.xsd"/>  -->
</grammars>
<resources base="http://localhost:8080/bs";>
<resource path="/books" id="com.bp.bs.BookResource">
<method name="POST" id="add" >
<request>
<representation mediaType="application/octet-stream" />
</request>
<response>
<representation mediaType="application/octet-stream" />
</response>
</method>
<resource path="/{isbn}">
<param name="isbn" style="template" type="xs:string" />
<method name="DELETE" id="delete" >
<request />
<response>
<representation mediaType="application/octet-stream" />
</response>
</method>
<method name="GET" id="get" >
<request />
<response>
<representation mediaType="application/xml" element="prefix1:book" />
</response>
</method>
<method name="PUT" id="update" >
<request>
<representation mediaType="application/xml" element="prefix1:book" />
<!-- <representation mediaType="application/octet-stream" /> -->
</request>
<response>
<representation mediaType="application/octet-stream" />
</response>
</method>
</resource>
</resource>
</resources>
</application>



On Fri, Sep 28, 2012 at 1:41 AM, Sergey Beryozkin <[email protected]
<mailto:[email protected]>> wrote:

    Hi,

    Redirecting to the users,
    On 27/09/12 19:17, bpirvali wrote:

        Hi Guys,

        I went through the documentation, which helped me figure out
        several issues
        I had, but not the following two problems:

        1) I have got a get(GET) method: get(@Context Request request,
        @PathParam("isbn")String isbn)
        How do I formulate the WADL for it so that I get the @Context in the
        produced Java code?


    It is not possible to express that in WADL because @Context is meant
    to capture a request information for the benefit of a service.

    Instead, get the tool to generate an interface only, and have
    'Request' injected into the implementation class field

        2) I have got a update (PUT) method: update(@PathParam("isbn")
        String isbn,
        BookState st)
        How do I formuate the WADL to get the BookState in the produced
        Java code?

        Here is my current WADL, which does not do it:
        <resource path="/{isbn}">

                  ....
        <method name="GET" id="get">
        <request />
        <response>
        <representation mediaType="application/xml"
        element="prefix1:book" />
        </response>
        </method>
        <method name="PUT" id="update">
        <request>
        <representation mediaType="application/xml"
        element="prefix1:book" />

        </request>
        <response>
        <representation mediaType="application/octet-__stream" />
        </response>
        </method>
        </resource>

    what about a response type for 'get'? May be you can paste the
    schema fragment ?

    Sergey



        Thank u so much,
        Behzad




        --
        View this message in context:
        
http://cxf.547215.n5.nabble.__com/Need-some-help-with-__WADL2Java-Tool-tp5714978.html
        
<http://cxf.547215.n5.nabble.com/Need-some-help-with-WADL2Java-Tool-tp5714978.html>
        Sent from the cxf-issues mailing list archive at Nabble.com.






--
Thanks,
Behzad

Reply via email to