2016-03-07 58 views
1

我想爲使用Jersey開發的ReST服務生成Swagger API文檔。Tomcat - Jersey - Swagger.Json未生成

我已經通過Swagger API文檔並按照文檔部署。

但是當我訪問URL(http://localhost:8080/MySwagger/swagger.json)時,我得到以下輸出。

{ 

"swagger" : "2.0", 

    "info" : 
    { 

    "version" : "1.0.2", 

    "title" : "UUK" 
    }, 

    "host" : "localhost:8080", 

    "basePath" : "/MySwagger", 

    "schemes" : [ "http" ] 

} 

上面一個deosn't包含我們已經開發

我試圖在文件中提及的各種選項API,但結果是一樣的。

我已經在tomcat 7.0.68中部署了應用程序。

我的Java版本是7

我已經使用Maven來下載依賴JAR和手動複製中的JAR/WEB-INF/lib目錄

Maven的腳本

mvn dependency:get -DgroupId=io.swagger -DartifactId=swagger-jersey2-jaxrs -Dversion=1.5.7 

我的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app> 


    <servlet> 
     <servlet-name>jersey</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 

     <init-param> 
      <param-name>jersey.config.server.provider.classnames</param-name> 
      <param-value> 
       io.swagger.jaxrs.listing.ApiListingResource, 
       io.swagger.jaxrs.listing.SwaggerSerializers, 
       test.EventReceiver 
      </param-value> 
     </init-param>  

     <load-on-startup>1</load-on-startup> 

    </servlet> 

    <servlet> 
     <servlet-name>SwaggerBootstrap</servlet-name> 
     <servlet-class>test.bootstrap.SwaggerApplication</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>jersey</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

我的自定義Servlet類

import io.swagger.jaxrs.config.BeanConfig; 

import javax.servlet.ServletConfig; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 

public class SwaggerApplication extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 

    @Override 
    public void init(ServletConfig config) throws ServletException 
    { 
    super.init(config); 

    BeanConfig beanConfig = new BeanConfig(); 
    beanConfig.setVersion("1.0.2"); 
    beanConfig.setSchemes(new String[]{"http"}); 
    beanConfig.setHost("localhost:8080"); 
    beanConfig.setBasePath(config.getServletContext().getContextPath()); 
    beanConfig.setTitle("UUK"); 
    beanConfig.setResourcePackage("io.swagger.resources"); 
    beanConfig.setScan(true); 
    beanConfig.setPrettyPrint(true); 
    } 
} 

我的API類

import io.swagger.annotations.Api; 
import io.swagger.annotations.ApiOperation; 
import io.swagger.annotations.ApiParam; 
import io.swagger.annotations.ApiResponse; 
import io.swagger.annotations.ApiResponses; 

import javax.ws.rs.Consumes; 
import javax.ws.rs.HeaderParam; 
import javax.ws.rs.POST; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path(value="/v1/") 
@Api(value="inboundtransaction" ,description = "Receive Inbound transaction", position = 1, protocols = "http") 

public class EventReceiver 
{ 
    @POST 
    @Path(value="/inboundtransaction") 
    @Produces({ MediaType.APPLICATION_JSON }) 
    @Consumes({ MediaType.APPLICATION_JSON }) 

    @ApiOperation(value="Receiving Inbound transaction from X", notes = "Must Contain ID",httpMethod = "POST",response=String.class) 
    @ApiResponses(value = 
    { 
       @ApiResponse(code = 201, message = "Received request and process later", response=String.class), 
       @ApiResponse(code = 400, message = "Server Busy. Please re-send later", response=String.class) 
    } 
    ) 

    public String inboundtransaction(
      @ApiParam(value = "Pass mandatory values to create EdiAddress",required = true) String data 
      ) 
    { 
     return "Success"; 
    } 
} 

請讓我知道什麼是當前的設置問題。

問候

Udhaya

回答

0

你需要包括你的包,它是用逗號無法相依包的字符串。

beanConfig.setResourcePackage(「io.swagger.resources,,」);