2016-07-08 59 views
0

我想爲我的REST調用提供一個文檔,在早期的一個項目中我寫了它,但現在項目有點大,所以我搜索了一個好的框架。我發現了swagger.io。它看起來非常好,實現對於maven項目來說非常簡單。我設置的路徑Swagger ServletHandlerError

<dependency> 
     <groupId>io.swagger</groupId> 
     <artifactId>swagger-jersey2-jaxrs</artifactId> 
     <version>1.5.0</version> 
    </dependency> 

的依賴,並配置了web.xml

<servlet> 
    <servlet-name>jersey</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
    <param-name>jersey.config.server.provider.packages</param-name> 
    <param-value> 
     io.swagger.jaxrs.listing, 
     package.rest 
    </param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

<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>0.0.1</param-value> 
    </init-param> 
    <init-param> 
     <param-name>swagger.api.basepath</param-name> 
     <param-value>http://localhost:8080/rest</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

我覺得我已經做了的小服務程序,但一個新的Maven後,安裝並啓動Jetty服務器,我叫鏈接本地主機:8080/REST/swagger.xaml或../swagger.json總會有以下異常:

2016-07-08 09:13:12.058:WARN:oejs.ServletHandler:Error for /rest/swagger.json 
java.lang.NoSuchMethodError: org.glassfish.jersey.internal.util.collection.Values.lazy(Lorg/glassfish/jersey/internal/util/collection/Value;)Lorg/glassfish/jersey/internal/util/collection/Value; 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
    at org.eclipse.jetty.server.Server.handle(Server.java:370) 
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) 
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) 
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667) 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
    at java.lang.Thread.run(Thread.java:745) 

你能幫助我嗎?

我試過安裝指南,如果swagger.io也爲澤西島1.17.1有沒有例外,但也沒有結果。

回答