我正在开发一个对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依赖。
发布于 2012-04-10 17:07:20
我可以解决这个问题。我删除了mx4j依赖项,并从我添加的原始依赖项中排除了引入mx4j依赖项的依赖项。当我删除mx4j时,我得到了相同的ClassNotFoundException,但我避免了需要它的依赖。一些全部开始工作的方式:)
发布于 2012-03-31 00:10:00
除了打开jar并删除有问题的类(这充其量是不可靠的)之外,我看不出您有多少关于类路径摆弄的选择。
如何使用Spring (您的grails应用程序中已经安装了Spring)来export your mbeans
https://stackoverflow.com/questions/9946032
复制相似问题