2016-07-08 4 views
0

私はREST-Callsのドキュメントを持っていますが、それ以前のプロジェクトでは単独で書かれましたが、今はプロジェクトが少し大きかったので、良いフレームワークを探しました。私はswagger.ioを見つけた。非常にうまく見え、実装はmavenプロジェクトにとって非常に簡単です。私はパスSwagger ServletHandlerError

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

で依存関係を設定し、

<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> 

が、私はそれを行っていると思うのweb.xmlのサーブレットを設定しますが、新しいMavenの後突堤Serverをインストールして起動し、私が呼ばれますURLのlocalhostを:8080 /休憩/ 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) 

あなたは私を助けることができますか?

ジャージー1.17.1のswagger.ioも例外ではなく結果もありません。

答えて

0

上記のjava.lang.NoSuchMethodErrorは、クラスパスにJersey 2 jarのバージョンが異なることに起因しています。

詳細については、NoSuchMethodError on Values.lazy (Jersey 2.5.1)およびhttps://java.net/jira/browse/JERSEY-2394を参照してください。

+0

私は2つのMavenProjectsにジャージーの依​​存関係が1つしかないので、クラスパスにジャージージャーを1つだけ持っているかしないのでしょうか? –