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