[Seasar-user:22003] Re: eclipseからのTomcat起動とコマンドからの起動時の差異について
OOISHI, MASANORI
[E-MAIL ADDRESS DELETED]
2014年 11月 21日 (金) 08:11:13 JST
大石です。
今田さん、回答ありがとうございます。
下記の回答がビンゴでした。
いくつかのupdateメソッドがあり連番で番号を終わりに付けていました。
番号をアルファベットに変えたところエラーメッセージが表示されなくなりました。
下記に書かれていますように
今後は「Daoインタフェースのメソッド名の最後は数字にしない」にいたします。
ありがとうございました。
-----Original Message-----
From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of 今田 昇
Sent: Thursday, November 20, 2014 2:52 PM
To: 'seasar-user @ ml.seasar.org'
Subject: [Seasar-user:22002] Re: eclipseからのTomcat起動とコマンドからの起動時の差異について
大石さん
こんにちは、今田と申します。
<<https://ml.seasar.org/archives/seasar-user/2014-July/021929.html>>
の事象と状況が似ています。
TestBasicTblDao.javaに、
updateメソッドと
update2メソッドがありませんか?
だとすると、
update2メソッドに付与されたAOPのクラス名の最後が
$$update20
(update2 + 連番0)
となり、
updateメソッドに付与されたAOPのクラス名の最後が
$$update20
(update + 連番20)
とたまたま実行時になってしまい、
たまたま、クラス名が重複してしまった可能性が高いです。
クラス名が重複しているからだめだよ・・・とクラスローダーが文句を言っているのです。
Daoインタフェースの各メソッドがどのような順番でAOPのクラス名が付与されるかは保証されないので、
実行環境や、タイミングによって、たまたま重複してしまうことがあります。
Seasar2フレームワークに手をいれない、
てっとりばやい回避策は、
Daoインタフェースのメソッド名の最後は数字にしないという方法です。
ちなみに、
Seasar2のバージョンは、1.0.43になります。
とおっしゃっているのは、
S2Daoのバージョンだと思います。
Seasar2のバージョンはまた別にあるはずです。
-----Original Message-----
From: seasar-user-bounces @ ml.seasar.org [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of OOISHI, MASANORI
Sent: Wednesday, November 19, 2014 5:49 PM
To: seasar-user @ ml.seasar.org
Subject: [Seasar-user:21999] eclipseからのTomcat起動とコマンドからの起動時の差異について
大石と申します。
いつもお世話になっております。
TomcatでSeasar2を利用しています。
Seasar2のバージョンは、1.0.43になります。
EclipseからTomcatを起動する際には、エラーが出ませんが
Tomcatをコマンドプロンプトから起動する際には、コンポーネントの定義で
エラーが発生します。
下記がそのエラーメッセージになります。
2014-11-19 07:44:03,562 [main] ERROR org.apache.catalina.core.ContainerBase.[Cat
alina].[localhost].[/avpdd2] - StandardWrapper.Throwable
org.seasar.framework.exception.InvocationTargetRuntimeException: [ESSR0043]java.
lang.ClassLoaderが呼び出した対象が不正です。理由はjava.lang.LinkageError: loader (instance of org/apache/catalina/loader/WebappClassLoader): attempted duplica te class definition for name: "avpdd2/dao/TestBasicTblDao$$EnhancedByS2AOP$$9529
05$$MethodInvocation$$update20"
Daoクラスのところでエラーが出ているのはわかるのですが
対策方法がわかりません。
どのようにしたらいいのでしょうか?
以上、よろしくお願いいたします。
_______________________________________________
Seasar-user mailing list
Seasar-user @ ml.seasar.org
https://ml.seasar.org/mailman/listinfo/seasar-user
_______________________________________________
Seasar-user mailing list
Seasar-user @ ml.seasar.org
https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内