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