Where can I find my WADL? (CXF)

I developed a simple service RESTful

using Apache CXF

bundled in a web app and it works fine.

I can access it on " http://localhost:8080/SpringRestProjectJava/api/books/1234

" and I also get the correct answer JSON

.

I understand from this link that it WADL

will autogenerate.

Is it correct? If so, how can I see WADL

for this service.

This is my web.xml

  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/CustomSpringConfig.xml</param-value>
      </init-param>      
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>simplerest</servlet-name>
    <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
    <init-param>
        <param-name>jaxrs.serviceClasses</param-name>
        <param-value>org.gsdev.ws.bookservice.BookResource</param-value>
    </init-param>
    <init-param>
        <param-name>jaxrs.providers</param-name>
        <param-value>org.gsdev.ws.bookservice.provider.XstreamJsonProvider</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>simplerest</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>

      

This is my BookResource.java

@Path( "books/{isbn}" )
public class BookResource {

    @GET
    @Produces ( "application/json" )
    public Book getDetails( @PathParam("isbn") String isbn){

        if( isbn.equals( "1234" )){
            Book book = new Book();
            book.setIsbn(isbn);
            book.setTitle("Learning web services by Garry");
            return book;
        }
        return null;
    }
}

      

+3


source to share


2 answers


Finally, after I try, I can get it to work. I think it has something to do with CXFNonSpringJaxrsServlet

. I made the changes below and I was able to access the autogenerated ones WADL

.

Changes in web.xml

<servlet>
    <servlet-name>simplerest</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>simplerest</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

      



Added cxf-servlet.xml

inWEB-INF

<jaxrs:server id="bookService" address="/bookservice">
        <jaxrs:serviceBeans>
           <ref bean="bs"/>
        </jaxrs:serviceBeans>
        <jaxrs:providers>
            <ref bean='jsonProvider' />
        </jaxrs:providers>
     </jaxrs:server>

     <bean id="bs" class="org.gsdev.ws.bookservice.BookResource"/> 
     <bean id="jsonProvider" class="org.gsdev.ws.bookservice.provider.XstreamJsonProvider"/>

      

+1


source


You tried:

http: // localhost: 8080 / SpringRestProjectJava / api / books? _WADL



By the way, there are many pluses here:

http://cxf.apache.org/docs/jax-rs.html

-1


source







All Articles