0

我正在尝试从推土机 5.2.2 升级到 5.3.2,我收到以下错误

java.lang.NoClassDefFoundError:无法初始化类 org.dozer.DozerBeanMapper

它在类路径和 build.xml 文件中,我只是将工作区中的所有引用从 5.2.2 更改为 5.3.2,我在从 5.1 升级到 5.2.2 时做了类似的事情,并且它有效。

任何帮助表示赞赏。

谢谢。

4

3 回答 3

4

我有同样的问题,实际上,我发现的唯一方法是使用旧版本的推土机,就像你做的那样。我们尝试了比您更大的更新(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.DozerBeanMapperSingletonWrapper.getInstance(DozerBeanMapperSingletonWrapper.java:43) 处初始化类 org.dozer.DozerBeanMapper

调用的 DozerBeanMapper 构造函数是 DozerBeanMapper(List mappingFiles),它可能是内部的一个错误。但是对简单构造函数 DozerBeanMapper() 的调用在我们自己的类中具有相同的结果。

也许两个版本之间缺少依赖关系...注意Eclipse 5.3.2版本没有问题,因此也可能是类加载器问题...

希望这将突出问题的根源。

于 2012-06-11T12:43:53.887 回答
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 中没有使用,其中使用了 commons-logging:http: //grepcode.com/file/repo1.maven.org/maven2/net.sf.dozer/dozer/5.2 .2/org/dozer/DozerBeanMapper.java/

于 2013-10-01T12:44:00.810 回答
1

我的推土机和推土机弹簧版本是 5.5.1。

出现以下错误:“NoClassDefFoundError:org.dozer.stats.GlobalStatistics(初始化失败)”。我只在我的依赖项中使用了 commons-lang 2.6 版。

通过添加 commons-lang3 依赖也解决了这个问题。很明显,dozer 对 commons-lang 库的第 3 版有紧密的依赖关系。

于 2016-09-09T07:43:31.680 回答