【发布时间】:2017-05-10 18:54:23
【问题描述】:
我的项目有很多罐子。两个罐子有一个同名的特定类。这两个 jar 都包含一个名为 Response 的类。 jar A 中的 Response 类之一有一个方法 abc()。我在服务类中创建此类的引用并调用此方法 abc()。当我使用maven生成war文件并在与Eclipse集成的本地系统Tomcat中运行该项目时,找到该方法并且没有异常。但是当我在外部 AWS Tomcat 中部署相同的战争文件时,我得到了 java.lang.NoSuchMethodError。这一定是因为在war文件中,引用必须属于另一个jar中没有abc()方法的类。我无法删除这些类,因为它们都被使用了。 帮助。
【问题讨论】:
-
这两个类的包结构是否相同?
-
是的。包结构相同。另外,我检查了 Order 和 Export 但那 2 个罐子没有按顺序和导出列出。
-
同一个包同一个类名根本不可能。或者更好的是,导入取决于类路径顺序,这只是一个非常糟糕的主意。您应该更改类名或更好的包,因为这听起来像是一个糟糕的设计选择......