nod::ぶろぐ::RIA::Flash/Flex/Ajax

FlashやFlex,(Ajax),S2Flex2,ActionScript3,yui-frameworks,Akabanaプロジェクトなどのメモ帳

CoolDeployとbackport175の関係?

先週8/29にS2Flex2のrc-1をリリースした後akabana-user[1]にあったsampleがJDK1.4環境で動作しないという問題にハマっていました。

実行環境とコンパイル環境をJDK1.4にすべて揃えて実行すると簡単に再現しました。

Exceptionの内容を見てみると、backport175でAnnotationを呼び出すところで例外が発生しているようです。

ERROR 2006-09-02 02:50:32,319 [http-8080-Processor25] could not retrieve the bytecode for class [examples/flex2/add/service/impl/AddServiceImpl$$EnhancedByS2AOP$$1f796d0] org.codehaus.backport175.reader.ReaderException: could not retrieve the bytecode for class : :

AOPをはずしてみたらというアドバイスのもと、flex2_example-customizer.diconからAOPの部分をコメントアウトして実行すると動作するようになりました。

AOPをもとの設定に戻して、s2flex2-backport175を外してAnnotationを利用しない形にしても動作しました。

今のところ、S2Flex2 + JDK1.4 + CoolDeploy環境ではAOPかAnnotationのどちらかを諦めることになってしまいます。

まずはbackport175のエラーしているクラスを探してたところ、backport175のページからはソースコードがたどれないので
fisheyeのページで探して見つけることができました。

http://fisheye.codehaus.org/browse/~raw,r=1.2/backport175/backport175/src/main/org/codehaus/backport175/reader/bytecode/DefaultBytecodeProvider.java

Loaderから該当のクラスを呼び出す際にクラスが見つけられていないようにみえます。

原因はどこにあるのか..

・CoolDeploy/HotDeployではClassLoaderが異なっている?
・backport175でのアノテーション?

ヒントになる事がわかる方、教えてください。m(__)m

#上記とは別にs2flex2-backport175/s2flex2-tigerでのバグを発見して
#修正することができました。この2つはrc-2として近くリリースする予定です。

backport175
http://backport175.codehaus.org/
ソースコード
http://fisheye.codehaus.org/browse/backport175

以下は例外発生時のStackTraceです。


DEBUG 2006-09-04 18:50:32,240 [http-8080-Processor25] BEGIN
examples.flex2.add.service.impl.AddServiceImpl#calculate2(examples.flex2.add.dto.AddDto@f51766)
DEBUG 2006-09-04 18:50:32,240 [http-8080-Processor25] END
examples.flex2.add.service.impl.AddServiceImpl#calculate2(examples.flex2.add.dto.AddDto@f51766)
: examples.flex2.add.dto.AddDto@f51766
ERROR 2006-09-04 18:50:32,319 [http-8080-Processor25] could not
retrieve the bytecode for class
[examples/flex2/add/service/impl/AddServiceImpl$$EnhancedByS2AOP$$1f796d0]
org.codehaus.backport175.reader.ReaderException: could not retrieve
the bytecode for class
[examples/flex2/add/service/impl/AddServiceImpl$$EnhancedByS2AOP$$1f796d0]
at org.codehaus.backport175.reader.bytecode.AnnotationReader.parse(AnnotationReader.java:917)
at org.codehaus.backport175.reader.bytecode.AnnotationReader.(AnnotationReader.java:936)
at org.codehaus.backport175.reader.bytecode.AnnotationReader.getReaderFor(AnnotationReader.java:196)
at org.codehaus.backport175.reader.bytecode.AnnotationReader.getReaderFor(AnnotationReader.java:167)
at org.codehaus.backport175.reader.Annotations.getAnnotation(Annotations.java:87)
at org.seasar.flex2.util.data.transfer.annotation.handler.Backport175ActionAnnotationHandler.getExportStorageType(Backport175ActionAnnotationHandler.java:32)
at org.seasar.flex2.util.data.transfer.impl.TransferImpl.exportToStorage(TransferImpl.java:43)
at org.seasar.flex2.rpc.remoting.service.impl.DataTransferSupportedRemotingServiceInvokerImpl.invoke(DataTransferSupportedRemotingServiceInvokerImpl.java:48)

Posted by nod at 2006年09月06日 19:42 | コメント (2) | トラックバック (0) | Clip!! | Clip!! | このエントリーを含むはてなブックマーク |digg it! |del.icio.us it!

この記事に対するコメント

・CoolDeploy/HotDeployではClassLoaderが異なっている?

異なっています。


backport175は、今後は使わない方向が良いんではないかと
思います。JDK1.4では定数アノテーション、Tigerからは
アノテーションでよいのではないかと。どうでしょうか?

Posted by: shot at 2006年09月08日 13:58

shotさん
コメントありがとうございます。

AutoRegisterに戻しても結局同じところで例外が発生してしまいました。
その他のProductsでもbackport175を使うことはなくなっていくのでしょうか。

定数アノテーションですか。
方向性としてはそうなのかもしれませんね
ちょっと考えて見ます。
ありがとうございました。m(__)m

Posted by: nod at 2006年09月10日 01:38

コメントを投稿する




保存しますか?



この記事のトラックバックURL


この記事に対するトラックバック

この記事に対するトラックバックはまだありません。



Flex.org - The Directory for Flex Get Adobe Flash Player Made with dreamweaverMade with fireworksPowered by Movable Type 3.33-jaPowered by Wandering Wind
Copyright : [Articles] (C) nod::ぶろぐ::RIA::Flash/Flex/Ajax All Rights Reserved.
[Comments/Trackbacks] ... Authors of those have rights.