我有一個休息應用程序。我的目標是刪除IBM JAX-RS並使用RESTEasy JAX-RS實現。我正在使用WAS8,我只想使用它。無法爲REST API測試RESTEasy JAX-RS實現
對於禁用IBM JAX-RS,我已經刪除了IBMRestServlet和IBMRestFilter類,並在管理控制檯中將com.ibm.websphere.jaxrs.server.DisableIBMJAXREngine JVM prop設置爲tru。
對於的RESTEasy JAX-RS implementaion,在聚甲醛加RestEasy的-JAXRS依賴性和配置的servlet在web.xml
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.11.Final</version>
</dependency>
Web.xml中
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.application.RestApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
A)首先我的「java。 lang.NoSuchMethodError:org/jboss/resteasy/specimpl/BuiltResponse.getHeaders()「異常。展望不同的答案,下面添加作爲依賴首先在pom.xml(雖然這並不作出任何意義,我)
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>jaxrs-api</artifactId>
<version>3.0.11.Final</version>
</dependency>
B)現在在這之後,我得到java.lang.NoSuchMethodError:使用javax/WS /rs/ClientErrorException.validate(Ljavax/ws/rs/core/Response;Ljavax/ws/rs/core/Response$Status$Family;Ljavax/ws/rs/core/Response)
你能幫我解決嗎A和B例外。我只想在WAS8中嘗試。
另外,如何確保已完全禁用IBM JAX-RS,並且服務器僅選擇REST Easy jaxrs。
是的,我改變了它。我的應用程序類加載器順序是首先使用本地類加載器加載的類(父類最後一個)。 – user3766874
仔細檢查您是在Web模塊上設置的,而不是應用程序 - 它們具有單獨的類加載器,它們必須單獨配置該設置。如果THAT沒有解決這個問題,並且您確定API和實現jar都在使用該設置的加載器中,那麼也許堆棧跟蹤將有助於縮小它的範圍 - 可能存在一些問題,意想不到的範圍。 – Jarid