2015-07-23 31 views
5

मुझे काम करने के लिए swagger डॉक्टर पीढ़ी प्राप्त करने में कोई समस्या है। मैं ResourceConfig कक्षा में अकड़ ressources जोड़ाजर्सी 2 स्वैगर कॉन्फ़िगरेशन

<dependency> 
    <groupId>org.glassfish.jersey.ext</groupId> 
    <artifactId>jersey-spring3</artifactId> 
    <version>2.17</version> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>com.wordnik</groupId> 
    <artifactId>swagger-jersey2-jaxrs_2.10</artifactId> 
    <version>1.3.12</version> 
</dependency> 

:

@WebServlet(name = "SwaggerJaxrsConfig", loadOnStartup = 2) 
public class SwaggerJaxrsConfig extends HttpServlet { 

    @Override 
    public void init(ServletConfig config) throws ServletException { 
     super.init(config); 

     BeanConfig beanConfig = new BeanConfig(); 
     beanConfig.setVersion("1.0.2"); 
     beanConfig.setResourcePackage("some.foo.package"); 
     beanConfig.setBasePath("http://localhost:8080/REST"); 
     beanConfig.setScan(true); 

    } 
} 
:

@ApplicationPath("REST") 
public class RESTServlet extends ResourceConfig { 

    public RESTServlet() { 
// ... 
// Swagger 
     register(ApiListingResourceJSON.class); 
     register(JerseyApiDeclarationProvider.class); 
     register(JerseyResourceListingProvider.class); 
// ... 
    } 
} 

तब मैं स्वैगर कॉन्फ़िगर करने के लिए एक सर्वलेट घोषित

यहाँ Maven deps मैं इस्तेमाल किया जाता है

उपरोक्त कॉन्फ़िगर के साथ, swagger servlet उठाया जाता है: यदि मैं एपीआई-दस्तावेज़ यूआरएल पर ब्राउज़ करता हूं, तो मुझे टी नहीं मिलता है वह निम्नलिखित:

{"apiVersion":"1.0.2","swaggerVersion":"1.2"} 

लेकिन अगर मैं नीचे की तरह वास्तविक एक के साथ अकड़ सर्वलेट विन्यास में एपीआई पैकेज बदलने के लिए:

@WebServlet(name = "SwaggerJaxrsConfig", loadOnStartup = 2) 
public class SwaggerJaxrsConfig extends HttpServlet { 

    @Override 
    public void init(ServletConfig config) throws ServletException { 
     super.init(config); 

     BeanConfig beanConfig = new BeanConfig(); 
     beanConfig.setVersion("1.0.2"); 
     beanConfig.setResourcePackage("com.myrealcompanypackage"); 
     beanConfig.setBasePath("http://localhost:8080/REST"); 
     beanConfig.setScan(true); 

    } 
} 

मैं एक अपवाद मिल मुझे समझ नहीं आता:

[2015-07-23T11:05:14.802+0200] [glassfish 4.1] [WARNING] [] [javax.enterprise.web] [tid: _ThreadID=27 _ThreadName=http-listener-1(5)] [timeMillis: 1437642314802] [levelValue: 900] [[ 
    StandardWrapperValve[com.myrealcompanypackage.platform.RESTServlet]: Servlet.service() for servlet com.myrealcompanypackage.platform.RESTServlet threw exception 
java.lang.NullPointerException 
    at scala.collection.convert.Wrappers$JListWrapper.iterator(Wrappers.scala:87) 
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) 
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54) 
    at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48) 
    at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:176) 
    at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:45) 
    at scala.collection.TraversableLike$class.to(TraversableLike.scala:629) 
    at scala.collection.AbstractTraversable.to(Traversable.scala:105) 
    at scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:257) 
    at scala.collection.AbstractTraversable.toList(Traversable.scala:105) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource$$anonfun$headersToMap$2.apply(ApiListing.scala:165) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource$$anonfun$headersToMap$2.apply(ApiListing.scala:165) 
    at scala.collection.TraversableLike$WithFilter$$anonfun$map$2.apply(TraversableLike.scala:722) 
    at scala.collection.Iterator$class.foreach(Iterator.scala:727) 
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) 
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) 
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54) 
    at scala.collection.TraversableLike$WithFilter.map(TraversableLike.scala:721) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource.headersToMap(ApiListing.scala:165) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource$$anonfun$3$$anonfun$apply$4.apply(ApiListing.scala:87) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource$$anonfun$3$$anonfun$apply$4.apply(ApiListing.scala:86) 
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
    at scala.collection.Iterator$class.foreach(Iterator.scala:727) 
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) 
    at scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:206) 
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) 
    at scala.collection.AbstractTraversable.map(Traversable.scala:105) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource$$anonfun$3.apply(ApiListing.scala:86) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource$$anonfun$3.apply(ApiListing.scala:85) 
    at scala.Option.map(Option.scala:145) 
    at com.wordnik.swagger.jaxrs.listing.ApiListingResource.resourceListing(ApiListing.scala:85) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171) 
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:387) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:331) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:103) 
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) 
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) 
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028) 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:372) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 
    at java.lang.Thread.run(Thread.java:745) 
]] 

कोई भी मदद करने के लिए?

बहुत बहुत धन्यवाद।

+1

यह स्वैगर-कोर का पुराना संस्करण है। आप नए संस्करण को एकीकृत करने से बेहतर हैं। Https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5 के बाद मदद करनी चाहिए। – Ron

उत्तर

1

स्पष्ट रूप से यह जर्सी 4.1 जैक्सन libs संस्करण से संबंधित एक मुद्दा होगा।

क्या मैं अंत बनाने के लिए किया था यह काम:

  • वृद्धि स्वैगर संस्करण पिछले संस्करण (2.6 द्वारा इस पर (धन्यवाद रॉन इस नए संस्करण को नोटिस नहीं किया था)
  • {glassfish_install}/glassfish/modules में बदला जैक्सन जार समय) here
  • मेरे डोमेन ({glassfish_install}/glassfish/domains/domain1/osgi-cache/felix) के लिए ओजीआई कैश हटा दिया गया और सर्वर को पुनरारंभ किया गया।
संबंधित मुद्दे