簡體   English   中英

哪里可以找到我的WADL? (CXF)

[英]Where I can find my WADL? (CXF)

我使用Apache CXF在Web應用程序中開發了一個簡單的RESTful服務,並且工作正常。

我可以在“ http://localhost:8080/SpringRestProjectJava/api/books/1234 ”上訪問它,我也得到了正確的JSON響應。

我的理解是, 從這個鏈接可以自動生成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;
    }
}

最后,繼續嘗試后,我能夠使它工作。 我認為這是由於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>

WEB-INF添加了cxf-servlet.xml

<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"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM