Reputation: 7189
I have made the below pom.xml entry:
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<version>1.5.0</version>
</dependency>
and created a 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());
}
}
}
and added this in web.xml: (I could have skipped web.xml by adding it but I am still usign sevlet 2.5 for some reason
@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>
I can see the below lines in the log: [org.reflections.Reflections] Reflections took 332 ms to scan 2 urls, producing 250 keys and 1186 values
but then I am getting 404 on http://localhost:8080/api
Do you know what am I doing wrong?
Upvotes: 2
Views: 1190
Reputation: 1672
It did not work for me either. So I used following in stead of httpservlet and then it started working
<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>
Refer to following link for more details on how i implemented https://github.com/sanketsw/jax_rs_REST_Example
Upvotes: 1