2015-06-02 4 views
3

Я разработал простой сервис RESTful, используя Apache CXF, связанный в веб-приложении и прекрасно работающий.Где я могу найти свой WADL? (CXF)

Я могу получить к нему доступ на «http://localhost:8080/SpringRestProjectJava/api/books/1234», и я также получаю надлежащий ответ JSON.

Полагаю, что from this link, что WADL будет автогенерироваться.

Верно ли это? Если да, то как я могу видеть WADL для этой услуги.

Это мой 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> 

Это мой 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; 
    } 
} 

ответ

1

Наконец, после продолжения попытки я могу заставить его работать. Я думаю, что это связано с CXFNonSpringJaxrsServlet. Я сделал изменения ниже, и я смог получить доступ к автогенерированным WADL.

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> 

Добавлено cxf-servlet.xml в WEB-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"/> 
Смежные вопросы