Jboss-allclient.jar 和 jboss-logging.jar 有一个类 org.jboss.logging.Logger ,类中定义的方法不同但包结构相同类。因此,我在部署时遇到了异常。
异常
getMessage() 的 NoSuchMethodException
这是因为,getMessage() 方法仅存在于一个类中。不幸的是,它选择了错误的类并抛出异常。
注意:
这适用于 tomcat 7(windows 和 linux 版本)和 tomcat8(Windows)
不在 tomcat 8(Linux 版本)中工作。
JRE版本为8
我的应用程序需要这两个 jar 。
最佳答案
在 Tomcat 8 中,单次 war 中加载 jar 的顺序无法保证。在它按字母顺序排列之前。
它被报告为 Apache 的一个错误,但他们声称这是一个功能;)检查 https://bz.apache.org/bugzilla/show_bug.cgi?id=57129
其中一位开发人员提出了一种解决方法,但我还没有尝试过。你可以上https://github.com/openwide-java/tomcat-classloader-ordered看看
祝你好运!
关于java - 如果存在具有相同包结构的重复类,tomcat 将如何加载该类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34904120/