log4j2.3升级后的Powermock无法重新配置JMX java.lang.LinkageError

时间:2017-01-12 09:29:43

标签: java maven junit log4j2 powermock

我将log4j从1.x升级到2.3。设置maven依赖项后,我的项目正在构建,应用程序运行正常。

但是在建立时,在测试目标中,在已经存在的variouse单元测试类中会出现下面提到的错误。

我可以使用@PowerMockIgnore找到解决方法。但是担心要更改已经写好的所有100个文件。

ERROR StatusLogger Could not reconfigure JMX java.lang.LinkageError: loading constraint violation: loader "org/powermock/core/classloader/MockClassLoader@5fa95fa9" previously initiated loading for a different type with name "javax/management/MBeanServer" defined by loader "com/ibm/oti/vm/BootstrapClassLoader@7a5c7a5c".

2 个答案:

答案 0 :(得分:4)

@see Mockito + PowerMock LinkageError while mocking system class

  

尝试将此注释添加到Test类:

     

@PowerMockIgnore("javax.management.*")

     

为我工作。

并为我工作

答案 1 :(得分:0)

如果您有许多测试类,并使用1.7.0版以上的powermock,则可以指定全局配置。请参见power mock configuration,它带有一个示例项目,其中已演示了其用法,请参见example

配置文件应具有:

powermock.global-ignore=javax.management.*