【问题标题】:NoSuchMethodError when not calling the method directly, but a service methodNoSuchMethodError 当不直接调用方法,而是服务方法时
【发布时间】:2019-07-02 14:45:42
【问题描述】:

当我调用相应的方法时,我看到以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: com/google/common/collect/Sets.newIdentityHashSet()Ljava/util/Set;

这是我的代码:

Client client = ClientBuilder.newClient();
WebTarget sendWT = client.target(blueMailUrl);
url.openConnection();           
Invocation.Builder builder = ((WebTarget) sendWT)                  
     .request(MediaType.APPLICATION_JSON)
     .header("Authorization","Basic " + DatatypeConverter.printBase64Binary((byte[]) (blueMailUserid + ":" + blueMailPassword)
     .getBytes("UTF-8")));

【问题讨论】:

  • 这可能会有所帮助:reflectoring.io/nosuchmethod
  • Guava 19.0 中有该方法(参考:guava.dev/releases/19.0/api/docs/com/google/common/collect/…)。我建议查看您在类路径上的 jar 文件,这种类型的错误经常发生,因为早期版本的 jar 文件位于具有所需版本的类路径上,并且早期版本隐藏了所需的 jar。检查一次。
  • 是的,我检查了我的类路径 jar 在那里。而且它只有一个版本。我正在使用“google-collect-0.5.jar”。它只有一个版本。
  • 即使我正在尝试使用 jar "jersey-guava-2.23.1" ,这也是同样的错误。任何人都经历过这个。请建议我如何解决它。

标签: java


【解决方案1】:

java.lang.NoSuchMethodError 发生在编译期间方法(实际上是类)可用而运行时缺少方法时。

确保在运行时将项目的所有依赖项添加到类路径中

在你的情况下,检查 google-collections jar 文件在类路径中是否可用

【讨论】:

  • java.lang.NoSuchMethodError 当方法(实际上是类)在编译期间可用并且在运行时缺少相同的方法时发生。 ::: 我们如何避免这种情况,请告诉我们。谢谢
  • @HemalataMohanta 这里已经回答了,看这里提供的解决方案stackoverflow.com/questions/36249002/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 2014-06-13
  • 1970-01-01
  • 2021-04-12
  • 2020-07-13
  • 1970-01-01
相关资源
最近更新 更多