[Seasar-user:21048] HOTdeploy が出来ない(非参照クラスから…が表示される)

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2011年 10月 7日 (金) 11:28:51 JST


こんにちは。
pianyiと申します。

現在、S2Struts1.2 で作成したプロジェクトを、S2Struts1.3 に変更しています。

その際、HOTdeploy対応 が出来なく困っております。
ヒント、助言など頂ければと思います。


やった事:
1.S2StrutsBlank V1.3.1 を元に、Weblogic 対応のプロジェクトを作成。
2.開発元ソースを、S2Struts1.3 に反映。(S2StrutsExample V1.3.1 を参考にする)
3.S2Container などを、2.4.44 にバージョンアップ
4.Cooldeploy で動作する事を確認。
5.Javaファイル(ActionやService) を変更すると、エラーが発生している。  ←  今ここ


Web画面に表示されるエラー内容:
org.seasar.framework.exception.EmptyRuntimeException: [ESSR0007]S2Containerはnullあるいは空であってはいけません。


ログ出力内容:
HOT deploy対象クラス(com.aiueo.action.impl.loginActionImpl)が非対象クラスから参照されて通常のクラスローダーにロードされています。

※対象としている、全てのクラスがに対して、上記メッセージが表示されます。


diconファイル:(コピペ出来ないので、単語ミスなどあるかもしれません)
************************************************************************************
独自.dicon
<components namespace="aiueo">
  <include path="com/aiueo/test.dao.dicon"/>
  <include path="com/aiueo/test.s2struts.dicon"/>

  <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
    <property name="autoNaming">
      <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming" />
    </property>
    <initMethod name="addClassPattern">
      <arg>"com.aiueo.test"</arg>
      <arg>".*ServiceImpl"</arg>
    </initMethod>
  </component>

  <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
    <property name="instanceDef">
      @[E-MAIL ADDRESS DELETED]
    </property>
    <property name="autoNaming">
      <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming" />
    </property>
    <initMethod name="addClassPattern">
      <arg>"com.aiueo.test"</arg>
      <arg>".*ActionImpl"</arg>
    </initMethod>
  </component>
  
  <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
    <property name="interceptor">
      <component class="com.aiuto.core.ErrorInterceptor" />
    </property>
    <initMethod name="addClassPattern">
      <arg>"com.aiueo.test"</arg>
      <arg>".*ActionImpl"</arg>
    </initMethod>
  </component>

</components>
************************************************************************************
test.dao.dicon
<components namespace="aiueo.dao">
  <include path="dao.dicon">

  <component name="s2dao" class="org.seasar.dao.interceptors.S2DaoInterceptor">
  </component>
  
  <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
    <property name="autoNaming">
      <component class="org.seasar.framework.container.autoregister.DefaultAutoNaming" />
    </property>
    <initMethod name="addClassPattern">
      <arg>"com.aiueo.test.dao"</arg>
      <arg>".*Dao"</arg>
    </initMethod>
  </component>

  <component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
    <property name="interceptor">
      dao.interceptor
    </property>
    <initMethod name="addClassPattern">
      <arg>"com.aiueo.test.dao"</arg>
      <arg>".*dao"</arg>
    </initMethod>
  </component>
  
</components>
************************************************************************************
test.s2struts.dicon (変更箇所のみ)

  <component name="pojoProcessAction" class="com.aiueo.core.PojoProcessActionImpl">
    <property name="defaultActionForward">
      <component class="org.apache.struts.action.ActionForward">
      </component>
    <property>
    <initMethod name="addPojoCommand">…  // 下からある奴
    <initMethod name="addPojoCommand">…  // 下からある奴
    <initMethod name="addPojoCommand">…  // 下からある奴
  </component>

************************************************************************************


その他:
・Actionクラスは、abstractクラスと、インターフェース を実装しています。
  (インターフェースは、フォワード情報と、全メソッドを宣言)
  (abstractクラスはPropertyファイルの取得など、リクエスト、レスポンス、セッション等制御)


分かった事:
・クラスを自動登録するために、diconファイルを作成したが、そのファイルを読み込むとエラーが出る。
  (当たり前?)
・Action だけでなく、Serviceも(非対象クラスから…) が出ている為、
  interceptor とは関係無いと思われる。

・サーバー再起動すれば正しく動作する。

・「HOT deployを開始します」 「HOT deployを終了します」ログは表示されている為、
  HOT deploy機能は動いていると思っています。


大変申し訳ありませんが、お力添えの程よろしくお願い致します。


開発環境: 
 ・Weblogic 11
 ・S2StrutsBlank V1.3.1
 ・S2Container 2.4.44
 ・S2Strut1.2 の 開発元ソース


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