【问题标题】:Jersey 2.21 Web.XML NoSuchMethod ErrorJersey 2.21 Web.XML NoSuchMethod 错误
【发布时间】:2015-10-20 20:52:46
【问题描述】:

我正在学习一个教程,但它是一个旧教程,我正在尝试学习新工具和新代码

我正在使用

Weblogic 12.1.3 Jersey 2.21(Jersey 以 .zip 格式下载,而不是通过 Maven) JDK 8 日食火星

我附上了课程的屏幕截图以及项目浏览器。我已经注释掉了类中的所有代码,因为我认为这是导致错误的原因。它不是。

web.xml 文件中的代码如下。

错误信息如下。

有人可以向我解释为什么我会收到此错误消息吗?

【问题讨论】:

  • 我没有使用 Maven。我下载了 Jersey .zip 并将所有文件手动复制到我的 lib 文件夹中。另一种解决方案是查看 POM 文件。不知道它在哪里或它是什么,但我认为我的项目中没有一个,因为我没有使用 Maven。
  • 您可能没有使用 maven,但问题是一样的 - 您的类路径中有多个版本的 JAX-RS api。我看到您正在使用 WebLogic - 这是否与 JAX-RS 一起提供,如果是,它使用什么版本?
  • 这确实与 Jax-rs 作为可部署库一起提供。我通过管理控制台在 Web 服务器上安装了 jar,但仍然收到错误消息。
  • 现在我收到错误消息“原因:weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.glassfish.hk2.api.ServiceLocatorFactory.create(Ljava/lang/String;Lorg/ glassfish/hk2/api/ServiceLocator;Lorg/glassfish/hk2/extension/ServiceLocatorGenerator;Lorg/glassfish/hk2/api/ServiceLocatorFactory$CreatePolicy;)Lorg/glassfish/hk2/api/ServiceLocator;"

标签: java rest jersey web.xml


【解决方案1】:

我认为这不是使用新工具的问题。这是在类路径上有两个不同版本的类的问题。尝试将 javax.ws.rs.api 从 2.X.X 版本替换为 1.X.X 版本。

【讨论】:

  • 什么类路径?类路径在哪里?我在哪里替换 javax.ws.rs.api 的版本?
猜你喜欢
  • 2021-03-03
  • 2017-02-02
  • 2021-01-07
  • 2015-02-24
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多