- - PR -
CactusテストでNoClassDefFoundErrorが出る
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-08-27 17:15
ukさん、レス有難うございます。
勝手に「フリーズという言葉の意味が分からない」と決め付けられて 少々頭に血が上ってしまいました。 さて、問題については自己解決したので報告します。 問題は 「maven cactus:testにおいて、 org/apache/commons/beanutils/DynaProperty NoClassDefFoundError が出る。同様の問題についてネットで調べたところ、 http://www.pegasisolutions.net/pegasisolutionsnet0/errorResolved_0.jsp のような解決法があるので試すと、 Tomcat自体は正常に起動できるが、maven cactus:testを 実行すると http://www5.ocn.ne.jp/~j2sdk/report/prompt.jpg のままフリーズする、というものでした。 この問題について、僕は TOMCAT_HOME/common/lib に貼り付けた commons-beanutils-core.jarが他のJARファイルとクラスが重複しているのでは ないか、と考えました。 jarファイルを展開して調べたところ、やはり commons-beanutils-core.jarと TOMCAT_HOME/common/lib/commons-collections.jarでは いくつかのクラスが重複していました。 そこで重複したクラスを除いたクラス群を再度JAR化して TOMCAT_HOME/common/libに配置したところ、 maven cactus:test が正常に実行できるようになりました。 これで問題は解決しました。 |
|
投稿日時: 2005-08-27 18:51
解決したとのことでなによりです。
恐らく参照元のクラスが親のクラスローダでロードされており、参照先のクラスが子のクラスローダでロードされていたからでしょうね。 jar ファイルにクラスの衝突があるかどうかはこんな↓ツールでも調べられます。 ・わらじ1.0 http://yusuke.homeip.net/waraji/ フリーズしてしまったときはまずスレッドダンプをとって何が発生しているのか確認すると良いです。 スレッドダンプ自体はこんな↓ツールをつかうと解析しやすいです。 http://yusuke.homeip.net/samurai/ |