トップ «前の日記(2011-07-27) 最新 次の日記(2011-07-30)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2011-07-28

_ URLClassLoaderとjar泣き別れ

継承関係にある2つのクラスが異なるjarに入っている場合、解決できないか、あるいは解決しないようにしているかのいずれかのようにみえる。

意図せぬ継承を弾くことが目的で後者としているのだとしたら、もっともなことだとは思うが、不便だなぁ。

本日のツッコミ(全4件) [ツッコミを入れる]
_ るいも (2011-07-28 14:24)

移譲で解決するので、親のクラスローダからは、子のクラスローダのクラスパスにしか入っていないクラスが見えないというのはありますね。その解決には、Thread Context Class Loaderを使うしか無いです。

_ arton (2011-07-28 22:32)

どうも。ということは、子供が派生側のjarを持っている(親は継承元のクラスのjarを持っている)なら見えるはずですか?

_ るいも (2011-07-28 23:30)

クラスローダのポリシーに関しては、子優先でも親優先でも、実質的には解決にならなくて、根本的な解決のためには、アプリケーション、ミドルウェアが、Thread Context Class Loaderを使ってクラスロードを行ってないとアウトと思います。

_ arton (2011-07-29 01:33)

というわけで、頭を冷やして調べ直したら、継承クラスそのものがCLASSPATH上に存在していたため、jarのロード順以前の問題として、最初から解決不能状態でロードされていたのが、問題でした。<br>ああ、ややこしい。成果物は、http://rubyforge.org/forum/message.php?msg_id=96829


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|

ジェズイットを見習え