2017-12-21 6 views
0

私はちょうどthisチュートリアルに従って自分のWebサービスのトークンベースの認証を実装しようとしましたが、「あなたのRESTエンドポイントを保護する」ステップで完了しましたが、今はいつ呼び出すときにAbstractMethodError私のエンドポイント。抽象メソッドURIビルダーでエラーが発生しました

私は既にこの問題がライブラリの互換性の問題で発生しているようですが、私が使用していないMavenが含まれているので、手動でライブラリを交換しようとしましたが、私は同じまたは異なるエラーを抱えていました。

削除するライブラリと保存する必要があるライブラリはどちらですか?

Current Libraries

コンソール出力は:

SCHWERWIEGEND: Servlet.service() for servlet [jersey-servlet] in context with path [/FM] threw exception [Servlet execution threw an exception] with root cause 
java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; 
    at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:748) 
+0

開発環境とデプロイされた環境の両方に、すべてのライブラリのSAMEバージョンが必要です。 –

+0

私はTomcatサーバー上でEclipseを使用して展開します。ビルドパスと展開アセンブリのライブラリは同じです – Fynn

答えて

1

あなたはあなたの問題が修正持っているかもしれませんが、実際の問題は

uri方法はJAX-RS仕様のバージョン2.0からUriBuilderで抽象メソッドです。

JAX-RS 2.0Jersey 1.*を使用しようとしています。その代わりに、を実装し、JAX-RS 2.0を実装し、uriメソッドの実装が必要です。

1

いくつかのより多くのインターネット上で検索した後、私はそれは私が「CFX-バンドル-3.0.0-milestone2を含める必要があり、このエラーを修正するために考え出しました。 jar "(これはUriBuilderの実装を含みます)をプロジェクトに追加します。

関連する問題