【发布时间】:2016-04-26 12:57:00
【问题描述】:
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。
【问题讨论】:
-
@PankajPandey。我浏览了给定的链接,没有得到我问题的答案。我的问题是,我需要什么来摆脱这个问题?我在 WEB-INF/lib/ 下都有两个 jar,并且提到的类存在于两个 jar 中。但是类的定义不同。这就是为什么我只在 tomcat 8(Linux 版本)中得到这个异常的原因。不适用于 tomcat 7(windows 和 linux)和 tomcat 8(Windows 版本)。
-
该链接描述了类加载的顺序,在 tomcat 8 之前,顺序是字母顺序,但在 tomcat 8 中,顺序是随机的,取决于底层操作系统。解决方法是,如果您将低阶 jar 文件之一移动到 tomcat/lib 中,那么它可能会起作用。请尝试。
标签: java tomcat jboss classloader tomcat8