Note that there are some explanatory texts on larger screens.

plurals
  1. POUnable to wire-up the swagger with RestEasy, Spring, JBoss AS 7.1.1
    primarykey
    data
    text
    <p>I am using JBoss AS 7.1.1, RestEasy 2.3.5.Final, Swagger 1.2.0, Spring 3.1.1</p> <p>Here is my web.xml,</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app&gt; &lt;listener&gt; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;classpath:/META-INF/spring/application-context.xml&lt;/param-value&gt; &lt;/context-param&gt; &lt;servlet&gt; &lt;servlet-name&gt;Bootstrap&lt;/servlet-name&gt; &lt;servlet-class&gt;com.js.api.Bootstrap&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet&gt; &lt;servlet-name&gt;springServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;/WEB-INF/spring/servlet-context.xml&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;swagger.config.reader&lt;/param-name&gt; &lt;param-value&gt;com.js.api.RestEasyConfigReader&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;swagger.api.basepath&lt;/param-name&gt; &lt;param-value&gt;http://localhost:8080/js&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;api.version&lt;/param-name&gt; &lt;param-value&gt;1.0&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;springServlet&lt;/servlet-name&gt; &lt;url-pattern&gt;/&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;/web-app&gt; </code></pre> <p>spring application-context &amp; servlet-context.xml are fine and my REST services are wired up and working. But only swagger is not working. Here is ApiListingResource,</p> <pre><code>package com.js.resource; import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.springframework.stereotype.Controller; import com.wordnik.swagger.annotations.Api; import com.wordnik.swagger.jaxrs.listing.ApiListing; @Path("/api-docs") @Api("/api-docs") @Produces({ "application/json" }) @Controller public class ApiListingResource extends ApiListing { } </code></pre> <p>I checked and @Context injection is not working in RestEasy 2.3.5. Anyway created a custom config reader,</p> <pre><code>import javax.servlet.ServletConfig; import com.wordnik.swagger.jaxrs.ConfigReader; public class RestEasyConfigReader extends ConfigReader { private ServletConfig config; public RestEasyConfigReader(ServletConfig config){ this.config = config; } @Override public String basePath() { return getParameterOrDefault("swagger.api.basepath", "http://localhost:8080/js"); } @Override public String swaggerVersion() { return "1.2"; } @Override public String apiVersion() { return "1.0"; } @Override public String modelPackages() { return "com.js.model"; } @Override public String apiFilterClassName() { return null; } private String getParameterOrDefault(String key, String defaultValue){ if ((config != null) &amp;&amp; (config.getInitParameter(key) !=null )) return config.getInitParameter(key); return defaultValue; } } </code></pre> <p>I am always getting NPE error when I try to access <code>http://localhost:8080/js/api-docs</code></p> <pre><code>java.lang.NullPointerException com.wordnik.swagger.jaxrs.ConfigReaderFactory$.getConfigReader(Help.scala:88) com.wordnik.swagger.jaxrs.listing.ApiListing.resourceListing(ApiListing.scala:64) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:155) org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211) org.jboss.resteasy.springmvc.ResteasyHandlerAdapter.createModelAndView(ResteasyHandlerAdapter.java:87) org.jboss.resteasy.springmvc.ResteasyHandlerAdapter.handle(ResteasyHandlerAdapter.java:74) org.jboss.resteasy.springmvc.ResteasyHandlerAdapter.handle(ResteasyHandlerAdapter.java:24) org.jboss.resteasy.springmvc.ResteasyWebHandlerTemplate.handle(ResteasyWebHandlerTemplate.java:39) org.jboss.resteasy.springmvc.ResteasyHandlerAdapter.handle(ResteasyHandlerAdapter.java:45) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:734) javax.servlet.http.HttpServlet.service(HttpServlet.java:847) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload