我输入了以下pom.xml条目:
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.0</version>
</dependency>
并创建了一个servlet:
public class SwaggerJaxrsConfig extends HttpServlet {
@Override
public void init(ServletConfig servletConfig) {
try {
super.init(servletConfig);
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.2");
beanConfig.setSchemes(new String[]{"http"});
beanConfig.setHost("localhost:8080");
beanConfig.setBasePath("/api");
beanConfig.setResourcePackage("com.mypackage.resource");
beanConfig.setScan(true);
} catch (ServletException e) {
System.out.println(e.getMessage());
}
}
}
并将其添加到web.xml中:(我可以通过添加它来跳过web.xml,但由于某些原因我仍然使用sevlet 2.5
@WebServlet(name = "SwaggerJaxrsConfig", loadOnStartup = 1)
<servlet>
<servlet-name>SwaggerJaxrsConfig</servlet-name>
<servlet-class>com.SwaggerJaxrsConfig</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
我可以在日志中看到以下几行:[org.reflections.Reflections]反射花了332毫秒来扫描2个URL,产生250个键和1186个值
但是然后我在http://localhost:8080/api上得到404
你知道我在做什么错吗?
最佳答案
它对我也不起作用。所以我用下面的方法代替了HTTPServlet,然后它开始工作
<servlet>
<servlet-name>Jersey2Config</servlet-name>
<servlet-class>io.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>
有关我如何实施的更多详细信息,请参见以下链接
https://github.com/sanketsw/jax_rs_REST_Example