【发布时间】:2014-10-09 21:23:31
【问题描述】:
我正在 Weblogic 12 上部署一个 Web 服务应用程序。该应用程序使用 jersey,因此依赖于 javax.ws.rs-api:2.0.1 库。
但是,当我将它部署到服务器时,出现以下错误:
Caused By: java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:304)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:285)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
at javax.servlet.GenericServlet.init(GenericServlet.java:240)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:337)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:288)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
...
我认为 weblogic 可能有它自己的 javax.ws.rs.core.Application 版本,它没有这个 getProperties() 方法。我将应用程序打包在 WAR 文件中并尝试使用
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
在 weblogic.xml 中,明确告诉 Weblogic 使用该库的 2.0.1 版本。
到目前为止没有任何帮助,问题仍然存在..
谢谢。
【问题讨论】:
-
这可能是一个类加载问题,其中 sun jersey 客户端 (1.x) 在较新的 jersey 库 (2.x) 之前被加载到内存中。当我使用的其他实用程序包括 jersey-client 1.x 时,我遇到了这个问题,但我已经能够在我的项目构建文件中排除该依赖项。
标签: java web-services jersey weblogic jax-rs