我在使用两个罐子的spring boot应用程序中遇到此问题。在这些jar中,有两个类具有相同的程序包名称和相同的类名称,以及一个方法具有相同的名称。当类加载器从不同的jar加载类并尝试调用此方法时,会发生问题。如果首先加载jar A,则调用方法,并且一切正常,但是如果首先调用jar B,则在运行时引发NOSUCHMETHODERROR异常。您能帮忙解决此问题吗?有没有一种方法可以迫使类加载器首先在Spring启动应用程序中首先加载特定的jar,或者可能对此进行任何其他修复。
注意:我正在使用JAVA 8,但无法访问这些jar文件的源代码。
答案 0 :(得分:0)
如果您将这些jar作为依赖项加载,则可以通过
将其从Maven中排除<exclusions>
<exclusion>
<groupId>org.XXXX</groupId>
<artifactId>jar1-api</artifactId>
</exclusion>
</exclusions>