Manish Kumar
Manish Kumar

Reputation: 7189

Swagger jaxrs not working

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

Answers (1)

Sacky San
Sacky San

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

Related Questions