[seasar-dev:414] hotdeployについて

arkw e1.arkw @ gmail.com
2006年 6月 4日 (日) 16:21:23 JST


ありかわです。


singletonのコンポーネントを、
hotdeployの対象となっているコンポーネントに、AutoBindする
ということを試していて、躓いてしまったので、質問させてもらいました。

現象として、
singletonのコンポーネントが、hotdeploy対象のコンポーネントにAutoBindされ
ません。
・singletonのコンポーネントは、app.diconで、定義しています。
・hotdeploy対象のコンポーネントは、Autodeployを使って定義しています。

ちょっと解析してみたのですが、
org.seasar.framework.container.assembler.AbstractBindingTypeDef
の156行目付近

154 if (container.hasComponentDef(propName)) {
155 Object value = container.getComponent(propName);
156 if (propType.isInstance(value)) {
157 setValue(componentDef, propertyDesc, component, value);
158 return true;
159 }
160 }

この155行目では、ちゃんとコンテナから値を取得しているみたいです。
この156行目の条件分岐がfalseになってしまいます。

この156行目で、デバックしてストップさせたVariablesは、以下の通りです。
this= BindingTypeShouldDef (id=130)
componentDef= ComponentDefImpl (id=241)
propertyDesc= PropertyDescImpl (id=265)
component= SnapshotServiceImpl (id=266)
container= S2ContainerImpl (id=172)
propName= "snapshotServiceConfig"
propType= Class<T>
(examples.flex2.camera.snapshot.SnapshotServiceConfig) (id=274)
value= SnapshotServiceConfig (id=278)

value.getClass()で、取り出せるクラスと、propTypeのクラスが異なるみたいで
す。
それに、hashCode()も、ちがうみたいです。


宜しく、お願い致します。


Seasar-dev メーリングリストの案内