NoSuchMethodError通常意味着您在类路径上有两个不同版本的类。由于
javax.ws.rs.core.Application该类确实
getProperties()在其JAX-
RS 2版本中具有该方法,但在JAX-RS 1.x中没有,因此我想您会以某种方式将旧的1.x Jersey(或旧的REST
api)与当前版本(2.3)结合使用.1)一。
同样,您正在使用的程序包(
com.sun.jersey-“旧”
Jersey程序包)也朝着这个方向发展(尽管仅将代码放入该程序包本身不会引起上述问题),显然,您从Jersey 1.x示例开始一个基础(在Jersey
2中也有示例,请参见Jersey GitHub上的helloworld-
webapp)。
是否有可能restEasy(也肯定包含
javax.ws.rs.core.Application该类)没有完全关闭,并且以某种方式默认为JAX-RS
1.x版本?
我将从检查您的pom文件开始,查看有效的pom(如果您的项目描述符具有某些父项),然后仔细检查类路径上的内容-我相信
javax.ws.rs-api某个地方有1.x版本。还尝试清除所有编译的内容并从头开始重建。
说到依赖性,如果您的列表是详尽无遗的(关于泽西岛),您很可能不得不添加
jersey-common(2.3.1)依赖性,因为在初始化过程中,该
ResourceConfig.packages()方法会调用
PackageScanner构造函数,该构造函数包含对
ReflectionHelper-的调用,而这不是服务器jar的一部分。
希望这可以帮助。



