我正在研究一个对 mx4j jar 具有传递依赖的 Grails 项目。我无法避免使用 mx4j jar 的依赖关系,并且我在提供的范围内使用了这个 jar。
但是每当我使用我运行我的应用程序时,grails run-app
我都会收到以下错误:
Error loader constraint violation: loader (instance of ) previously initiated loading for a different type with name "javax/management/MBeanServer"
java.lang.LinkageError: loader constraint violation: loader (instance of ) previously initiated loading for a different type with name "javax/management/MBeanServer"
at javax.management.MBeanServerBuilder.newMBeanServerDelegate(MBeanServerBuilder.java:49)
at javax.management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:302)
如果我删除provided 'mx4j:mx4j:3.0.2'
依赖项,我会在 mx4j 类上获得 ClassNotFoundException。
我认为内部 grails tomcat 正在加载“javax/management/MBeanServer”类,并且由于它也是通过 mx4j 加载的,因此导致了上述问题。无论如何我可以在 grails 结束时解决这个问题吗?我无法避免项目中的 mx4j 依赖项。