2017-12-21 24 views
0

웹 서비스에 대한 토큰 기반 인증을 구현하기 위해 this 자습서를 시도했지만 방금 "REST 끝점 보안 설정"단계가 완료되었지만 이제는 언제나 AbstractMethodError가 발생합니다. 내 끝점.URI 작성기가있는 AbstractMethodError

난 이미 another question이 문제는 라이브러리와의 호환성 문제로 인해 발생하는 것으로 보이지만 답변을 사용하지 않는 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

개발 환경과 배포 된 환경 모두에 모든 라이브러리가 동일한 버전이어야합니다. –

+0

Tomcat 서버에서 Eclipse를 통해 배포합니다. 내 빌드 경로와 배포 어셈블리의 라이브러리는 동일합니다. – Fynn

답변

1

당신은 당신의 문제가 해결 가지고 수도 있지만, 실제 문제는

uri 방법은 JAX-RS 사양의 버전 2.0에서 UriBuilder에서 추상적 인 방법이다.

JAX-RS 2.0Jersey 1.*을 사용하려고합니다. 대신 JAX-RS 2.0을 구현하는 Jersey 2.*을 사용해야하며 구현 방법은 uri입니다.

1

좀 더 인터넷에서 검색 한 후, 나는 내가 "CFX-번들-3.0.0-milestone2을 포함해야이 오류를 해결하기 위해 생각. jar "(UriBuilder의 구현을 포함)를 내 프로젝트에 추가합니다.