0

dozer 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

私は同じ問題を抱えていましたが、実際、私が見つけた唯一の方法は、古いバージョンの 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 を org.dozer.DozerBeanMapperSingletonWrapper.getInstance(DozerBeanMapperSingletonWrapper.java:43) で初期化できませんでした

呼び出される DozerBeanMapper コンストラクターは DozerBeanMapper(List mappingFiles) であり、内部のバグである可能性があります。しかし、単純なコンストラクタ DozerBeanMapper() への呼び出しは、独自のクラスで同じ結果になります。

2 つのバージョン間で依存関係が失われている可能性があります...バージョン 5.3.2 の Eclipse では問題がないことに注意してください。したがって、クラス ローダーの問題である可能性もあります...

これにより、問題の原因が明らかになることを願っています。

于 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/

Commons-logging が使用されていた 5.2.2 では使用されていなかったこのライブラリがおそらく不足しています: 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 に答える