在我的项目中,我使用jersy client调用其余服务。它在本地工作文件。但是在服务器中不工作。
在本地我正在使用jdk1.7.0_10
在服务器中我正在使用jdk1.7.0_80
Local RunTime:Tomcat
服务器运行时:JBOSS
Libraries:
jersey-bean-validation-2.22.jar
jersey-client-2.22.jar
jersey-common-2.22.jar
jersey-entity-filtering-2.22.jar
jersey-guava-2.7.jar
jersey-media-moxy-2.22.jar
javax.annotation-api-1.2.jar
javax.inject-1.jar
javax.ws.rs-api-2.0.1.jar
jaxrpc.jar
为什么它不能在服务器上运行?
任何帮助将不胜感激!!!!
答案 0 :(得分:0)
java.lang.NoSuchMethodError
。这通常发生在使用某个版本的接口开发应用程序代码时,而它部署在具有旧版本接口的环境中,该接口没有新版本的某些方法。
类MultivaluedMap
是Java EE API的一部分(更具体地说是JAX-RS API的一部分)。请查看此处的文档:https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MultivaluedMap.html
请注意它是如何声明该类自1.0版以来一直可用,这意味着它自JAX-RS版本1.0以来一直存在。
另一方面,方法addAll
说明has only been available since version 2.0
这意味着您的开发已针对API的2.0版进行,但您正在使用实现1.0的服务器上进行部署。可能的原因是:
检查在本地和服务器上使用的应用服务器(GlassFish,Websphere,JBoss ...),在任一环境中使用哪些版本以及捆绑哪些JAX-RS API(和实现),以及捆绑到哪些应用服务器您的部署档案(可能是EAR文件)。
答案 1 :(得分:0)