[Seasar-user:22002] Re: eclipseからのTomcat起動とコマンドからの起動時の差異について

今田 昇 [E-MAIL ADDRESS DELETED]
2014年 11月 20日 (木) 14:51:30 JST


大石さん

こんにちは、今田と申します。
<<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 メーリングリストの案内