【问题标题】:Grails run-app not starting when adding mx4j dependency添加 mx4j 依赖项时 Grails run-app 未启动
【发布时间】:2012-04-14 07:39:31
【问题描述】:

我正在开发一个对 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 依赖。

【问题讨论】:

    标签: grails mx4j


    【解决方案1】:

    除了打开 jar 并删除有问题的类(这充其量是不确定的)之外,关于类路径摆弄,我没有看到很多选择。

    使用 Spring(您已经在您的 grails 应用程序中安装)到export your mbeans 怎么样?

    【讨论】:

    • 打开 jar 并删除类的问题是,由于 jar 在我的本地 M2 Repo 中,它也可能被其他应用程序使用。我会尝试spring方式并更新
    【解决方案2】:

    我可以解决它。我删除了 mx4j 依赖项,并从我添加的原始依赖项中排除了引入 mx4j 依赖项的依赖项。当我删除 mx4j 时,我得到了相同的 ClassNotFoundException,但我避免了需要它的依赖项。一些如何开始工作:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 2014-07-26
      相关资源
      最近更新 更多