我按照步骤将Swagger添加到我在TOMCAT中已经构建的Jersey REST API项目中
- 补充:
swagger-annotations-1.3.10.jar
招摇,core_2.10-1.3.10.jar
招摇,jaxrs_2.10-1.3.10.jar
招摇-jersey2-jaxrs_2.10-1.3.10.jar
- 在web.xml中添加
contextClass org.springframework.web.context.support.AnnotationConfigWebApplicationContext contextConfigLocation com.estartup.config.PersistenceConfig
<!-- Bootstrap the root application context as usual using ContextLoaderListener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>jersey-servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.estartup.config.Application</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-servlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Jersey2Config</servlet-name>
<servlet-class>com.wordnik.swagger.jersey.config.JerseyJaxrsConfig</servlet-class>
<init-param>
<param-name>api.version</param-name>
<param-value>1.0.0</param-value>
</init-param>
<init-param>
<param-name>swagger.api.basepath</param-name>
<param-value>http://localhost:8080/api</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
申请类:
public class Application extends ResourceConfig {
@Inject
public Application(ServiceLocator serviceLocator) {
register(new ServiceBinder());
register(com.estartup.feature.JacksonFeature.class);
packages(true, "com.estartup", "com.wordnik.swagger.jaxrs.json","com.wordnik.swagger.jersey.listing");
}
}
但是,当我导航到
http://localhost:8080/api/api-docs
我得到 HTTP Status 404 - page not found.
:( . 在日志中,我确实看到像这样装载的招摇:什么是错的?
15935 DEBUG [localhost-startStop-1] com.wordnik.swagger.jaxrs.config.WebXMLReader - set api.version to 1.0.0
15935 DEBUG [localhost-startStop-1] com.wordnik.swagger.jaxrs.config.WebXMLReader - set swagger.api.basepath to http://localhost:8080/api
2 回答
根据您的评论,如果您的应用程序部署在Tomcat上,那么很可能是错误的URL .
假设您的应用程序的上下文根是
myapp
,那么您的API本身将在http://localhost:8080/myapp/api/...
上可用,并且同样的方式,swagger文档将在http://localhost:8080/myapp/api/api-docs
上可用 .试试这个配置:
pom.xml
:web.xml
:SwaggerApplication.java
:要访问您的Swagger JSON:
http://<your-app>/<your-context>/rs/swagger.json