java.lang.NoSuchMethodError: javax.ws.rs.core.Response.readEntity
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/34737730/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
java.lang.NoSuchMethodError: javax.ws.rs.core.Response.readEntity
提问by Subodh Joshi
What i am doing
我在做什么
Previosly i am using Jercey Client but Jercey don't have mechanism called RetryI have to use RestEasy client so i have added below dependency in my pom.xml file
以前我使用的是 Jercey 客户端但 Jercey 没有称为重试的机制我必须使用 RestEasy 客户端所以我在我的 pom.xml 文件中添加了以下依赖项
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.8.Final</version>
</dependency>
<!-- JAXB support -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>3.0.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>jaxrs-api</artifactId>
<version>3.0.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-atom-provider</artifactId>
<version>3.0.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>3.0.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-links</artifactId>
<version>3.0.8.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-Hymanson2-provider</artifactId>
<version>3.0.8.Final</version>
</dependency>
Java code I have written
我写的Java代码
ResteasyClient client;
client = new ResteasyClientBuilder().build();
ResteasyWebTarget target = client.target(usersRequest.getUrl());
Response response = null;
if(null != usersRequest.getXmlObject()){
response = target.request().accept(MediaType.APPLICATION_XML_TYPE).post(Entity.entity(usersRequest.getXmlObject(),MediaType.TEXT_XML));
}else{
response = target.request().accept(MediaType.APPLICATION_XML_TYPE).get();
}
output = response.readEntity(String.class);
But I am ending with below error
但我以以下错误结束
java.lang.NoSuchMethodError: javax.ws.rs.core.Response.readEntity(Ljava/lang/Class;)Ljava/lang/Object; at com.alu.ipprd.mdf.soa.portal.integration.restapi.RestAPIUsersFacade.getAuthorizationUserRole(RestAPIUsersFacade.java:212) [mdf-portal-integration-0.0.1-SNAPSHOT.jar:] at com.alu.ipprd.bsm.soa.portal.business.aaa.UsersWorkOrder.processBusinessLogic(UsersWorkOrder.java:57) [mdf-portal-business-0.0.1-SNAPSHOT.jar:] at com.alu.ipprd.bsm.soa.portal.business.aaa.UsersWorkOrder.processBusinessLogic(UsersWorkOrder.java:1) [mdf-portal-business-0.0.1-SNAPSHOT.jar:] at com.alu.ipprd.bsm.soa.portal.common.business.BaseWorkOrder.submitWorkOrder(BaseWorkOrder.java:75) [mdf-portal-common-0.0.1-SNAPSHOT.jar:] at com.alu.ipprd.bsm.soa.portal.bean.LoginBean.doLogin(LoginBean.java:907) [classes:] at com.alu.ipprd.bsm.soa.portal.bean.LoginBean.verifyLogged(LoginBean.java:1150) [classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_79] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.7.0_79] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.7.0_79] at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.7.0_79] at org.apache.el.parser.AstValue.invoke(AstValue.java:262) [jbossweb-7.0.10.Final.jar:] at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) [jbossweb-7.0.10.Final.jar:] at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:128) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2464) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2168) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2116) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:288) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:246) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.10.Final.jar:] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.10.Final.jar:] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.10.Final.jar:] at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) [jboss-as-web-7.1.0.Final.jar:7.1.0.Final] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.10.Final.jar:] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final.jar:] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final.jar:] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final.jar:] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final.jar:] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final.jar:] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final.jar:] at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_79]
java.lang.NoSuchMethodError: javax.ws.rs.core.Response.readEntity(Ljava/lang/Class;)Ljava/lang/Object; 在 com.alu.ipprd.mdf.soa.portal.integration.restapi.RestAPIUsersFacade.getAuthorizationUserRole(RestAPIUsersFacade.java:212) [mdf-portal-integration-0.0.1-SNAPSHOT.jar:] 在 com.alu.ipprd。 bsm.soa.portal.business.aaa.UsersWorkOrder.processBusinessLogic(UsersWorkOrder.java:57) [mdf-portal-business-0.0.1-SNAPSHOT.jar:] 在 com.alu.ipprd.bsm.soa.portal.business .aaa.UsersWorkOrder.processBusinessLogic(UsersWorkOrder.java:1) [mdf-portal-business-0.0.1-SNAPSHOT.jar:] 在 com.alu.ipprd.bsm.soa.portal.common.business.BaseWorkOrder.submitWorkOrder( BaseWorkOrder.java:75) [mdf-portal-common-0.0.1-SNAPSHOT.jar:] 在 com.alu.ipprd.bsm.soa.portal.bean.LoginBean.doLogin(LoginBean.java:907) [类: ] 在 com.alu.ipprd.bsm.soa。
I also checked the jar jaxrs-api-3.0.8.Final.jar
which contain this class and method also in present even then its not going to resolve. Can any one tell me what i am doing wrong?
我还检查了jaxrs-api-3.0.8.Final.jar
包含此类和方法的 jar ,即使它也不会解决。谁能告诉我我做错了什么?
EDIT 1:-I restrict Jboss to use resteasy jar by adding following entry in jboss-deployment-structure.xml
编辑 1:-我通过添加以下条目来限制 Jboss 使用 resteasy jarjboss-deployment-structure.xml
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.log4j" />
<module name="org.jboss.resteasy.resteasy-atom-provider" />
<module name="org.jboss.resteasy.resteasy-cdi" />
<module name="org.jboss.resteasy.resteasy-jaxb-provider" />
<module name="org.jboss.resteasy.resteasy-jaxrs" />
<module name="org.jboss.resteasy.resteasy-jettison-provider" />
<module name="org.jboss.resteasy.resteasy-jsapi" />
<module name="org.jboss.resteasy.resteasy-multipart-provider" />
<module name="org.jboss.resteasy.resteasy-yaml-provider" />
<module name="org.jboss.resteasy.resteasy-Hymanson-provider" />
<module name="org.javassist" />
</exclusions>
<dependencies>
<module name="javaee.api">
<imports>
<exclude path="org/apache/xml/security/**" />
</imports>
</module>
<module name="org.jboss.resteasy.resteasy-jettison-provider" />
<module name="org.codehaus.jettison" />
</dependencies>
</deployment>
</jboss-deployment-structure>
采纳答案by Subodh Joshi
Any how this RESTEasy Client + NoSuchMethodErrorwill help to resolve the issue.As i am using Jboss7.1.0.final server when i unzip resteasy-jaxrs-3.0.8.Final-all
it have resteasy-jboss-modules-3.0.8.Final
and resteasy-jboss-modules-3.0.8.Final
come up with three folder com
,javax
,org
these 3 folder we have to copy and paste to jboss-as-7.1.0.Final\jboss-as-7.1.0.Final\modules
任何这怎么的RESTEasy客户端+的NoSuchMethodError将帮助时,我解压到解决我使用Jboss7.1.0.final服务器issue.Asresteasy-jaxrs-3.0.8.Final-all
它具有resteasy-jboss-modules-3.0.8.Final
和resteasy-jboss-modules-3.0.8.Final
拿出三个文件夹com
,javax
,org
这3文件夹中,我们必须复制并粘贴到jboss-as-7.1.0.Final\jboss-as-7.1.0.Final\modules
I am copying only resteasy-jboss-modules-3.0.8.Final\org\jboss\resteasy
to Jboss server so it was failing.
我只复制resteasy-jboss-modules-3.0.8.Final\org\jboss\resteasy
到 Jboss 服务器,所以它失败了。
回答by Muhammad Suleman
This problems are thrown cause of different version of Resteasy Client implementation between your app and Jboss.
此问题是由于您的应用程序和 Jboss 之间的 Resteasy Client 实现版本不同而引发的。
Please see RESTEasy Client + NoSuchMethodError