我正在尝试从推土机5.2.2升级到5.3.2,我收到以下错误
java.lang.NoClassDefFoundError:无法初始化类org.dozer.DozerBeanMapper
在classpath和build.xml文件中,我只是将工作区中的所有引用从5.2.2更改为5.3.2,我在从5.1升级到5.2.2时做了类似的事情,并且它工作正常。
感谢任何帮助。
感谢。
答案 0 :(得分:1)
我遇到了同样的问题,实际上,我找到的唯一方法就是使用旧版本的Dozer。我们尝试了比您更大的更新(4.2 - > 5.3.2)。 我确切地说,我只更改了我的pom.xml中的依赖项,使其在我的应用程序服务器(WASCE)上运行,以便恢复:
工作:
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.2.2</version>
</dependency>
不工作:
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.3.2</version>
</dependency>
即使我们访问DozerBeanMapperSingletonWrapper:
引起:java.lang.NoClassDefFoundError:无法初始化类 org.dozer.DozerBeanMapper at org.dozer.DozerBeanMapperSingletonWrapper.getInstance(DozerBeanMapperSingletonWrapper.java:43)
DozerBeanMapper构造函数是DozerBeanMapper(List mappingFiles),它本来就是一个bug。但是对简单构造函数DozerBeanMapper()的调用在我们自己的类中具有相同的结果。
两个版本之间可能缺少依赖关系...... 请注意,使用5.3.2版本的Eclipse没有问题,因此它也可能是类加载器问题...
希望这会突出问题的根源。
答案 1 :(得分:1)
5.3.2正在使用org.slf4j.Logger: http://grepcode.com/file/repo1.maven.org/maven2/net.sf.dozer/dozer/5.3.2/org/dozer/DozerBeanMapper.java/
您可能缺少此库,该库未在5.2.2中使用,其中使用了公共日志记录:http://grepcode.com/file/repo1.maven.org/maven2/net.sf.dozer/dozer/5.2.2/org/dozer/DozerBeanMapper.java/
答案 2 :(得分:1)
我的推土机&amp; dozer-spring版本是5.5.1。
出现以下错误:“NoClassDefFoundError:org.dozer.stats.GlobalStatistics(初始化失败)”。我只在我的依赖项中使用了commons-lang 2.6版。
通过添加commons-lang3依赖项也解决了这个问题。很明显,在commons-lang库的第3版中,推土机存在严重的依赖性。