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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 23:15:35  来源:igfitidea点击:

java.lang.NoSuchMethodError: javax.ws.rs.core.Response.readEntity

javarestjbossresteasy

提问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.jarwhich 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-allit have resteasy-jboss-modules-3.0.8.Finaland resteasy-jboss-modules-3.0.8.Finalcome up with three folder com,javax,orgthese 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.Finalresteasy-jboss-modules-3.0.8.Final拿出三个文件夹comjavaxorg这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\resteasyto 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

请参阅RESTEasy 客户端 + NoSuchMethodError