gpt4 book ai didi

java - 智能/Tomcat : NoSuchMethodError

转载 作者:行者123 更新时间:2023-11-28 22:52:22 27 4
gpt4 key购买 nike

在我的 Java 项目中,我有一个类 Person,它存在于两个具有相同包名 (com.example.beans) 的不同 jar 中。

问题是这个类在jar1中是这样定义的:

class Person {
private String firstname;
private String lastname;
public Person(String firstname, String lastname){
this.firstname = firstname;
this.lastname = lastname;
}
}

jar2 中:

class Person {
private int age;
public Person(int age){
this.age = age;
}
}

这个类在项目中使用正确,IntelliJ 没有提示。在服务器 (tomcat 8) 启动时,出现以下错误:

java.lang.NoSuchMethodError: com.example.beans.Person(Ljava/lang/String, Ljava/lang/String)

我怀疑 Tomcat 从 jar2 而不是 jar1 加载了 Person

问题:如何告诉 IntelliJ(告诉 tomcat)加载正确的类取决于签名?

问候。

最佳答案

jar 应该放在 war 文件的 WEB-INF\lib 文件夹中,这样,它们将被不同的类加载器加载,并且它们不会'不会引起这样的问题。

顺便说一下,在不同的 jar 文件中使用相同的名称来命名包是不好的做法。包的主要目标之一是正确的命名空间,而这绝不是正确的。

关于java - 智能/Tomcat : NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com