[Seasar-user:19851] [s2Dao] コンパイル環境を変更するとClassCastExceptionが発生
k hase
[E-MAIL ADDRESS DELETED]
2010年 6月 15日 (火) 12:01:03 JST
それまで開発用のWindowsPC上でMavenを使用してpackageゴールを実行し、Warファイルを生成しておりましたが、
社内にてRedHatLinux上に構築したCIツール「Hudson」を導入することになり、その環境でMavenのpackageゴールを実行し、
生成されたWarファイルをTomcat上にデプロイし動作させたところ、それまで発生しなかったClassCastExceptionが
発生するようになってしまいました。
※ちなみに、Hudsonを介さず、Linuxサーバ上で直接「mvn clean package」コマンドでWarを生成しても、同様の結果となりました。
DBFluteで生成したBehaviorクラスインスタンスのメソッドから取得したListから要素オブジェクトを取得する際、
受け側の変数型にキャストする際に発生しております。
具体的には、次の様なコードを実行する事で発生しております。
----------
SelectAaaaJOINPmb aaaaPmb = new SelectAaaaJOINPmb();
aaaaPmb.setId(id);
// 検索
List<SelectAaaaJOIN> resultList = bbbbBhv.selectAaaaJOIN(aaaaPmb);
SelectAaaaJOIN aaaa = resultList.get(0); // ★ClassCastException発生個所
----------
bbbbBhv.selectAaaaJOINの返却値として明示的にList<SelectAaaaJOIN>という宣言をしておりますが、宣言通りの型が
入っていないようです。。
resultListに入っているオブジェクトの型は、bbbbBhvが対応しているBbbbというエンティティの型となっています。
bbbbBhvはBbbbDaoをラップしており、BbbbDaoの実装クラスはAOPにより直接バイナリとして生成されるため
この箇所がコンパイルの過程で何らかの影響をうけているように考えておりますが、いかがでしょうか。
実行した環境は次の通りです。
-------------
JavaSDK: Java 5.0 Update12
Maven: 2.0.6
-------------
S2関連の使用ライブラリは次の通りです。
-------------
s2-extension: 2.4.16
s2-framework: 2.4.16
s2-tiger: 2.4.16
teeda-extension: 1.0.8
teeda-core: 1.0.8
teeda-tiger: 1.0.8
teeda-ajax: 1.0.8
teeda-xmlunit: 0.1.0
s2-dao: 1.0.45
s2-dao-tiger: 1.0.45
dbflute: 0.5.2
-------------
以上です。ご回答よろしくおねがいします。
Seasar-user メーリングリストの案内