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

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2011年 10月 7日 (金) 16:21:02 JST


小林 (koichik) です.

S2Struts の S2Struts-Blank に customizer.dicon が含まれて
いるので、それを参考にしてください。

http://www.seasar.org/source/browse/s2struts/trunk/s2struts-smartdeploy-blank/src/customizer.dicon?revision=1151&view=markup


Date: Fri, 07 Oct 2011 15:56:26 +0900
From: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:21051]  Re:  Re: HOTdeploy が出来ない(非参照クラスから…が表示される)

> pianyiです。
> 
> と言う事は、独自.dicon を削除しても、インターセプタは動かないが、画面遷移などは出来る…筈…という事ですよね。
> 「アクション /XXXX に対するマッピングが見つかりません」が出ている時点でダメなのですね。
> 
> 再度一度見直します。
> 
> 
> 「customizer.dicon」の記述方法が理解出来ておりません。
> 下記URLで、インターセプタを呼び出すようになっておりますが、
> 独自クラスのインターセプタの指定はどのように行うのでしょうか。
> 
> http://s2container.seasar.org/2.4/ja/S2.4SmartDeployConfig.html#applyClassPattern
> 
> 「traceCustomizer」ファイルを抜き出し、編集・追加すれば良いのでしょうか。
> 
> 
> 初歩的な質問ばかりでお手数をお掛けし、大変申し訳御座いません。
> 
> よろしくお願い致します。
> 
> 
> 2011/10/07 (Fri) 15:37, "Koichi Kobayashi" <[E-MAIL ADDRESS DELETED]> wrote:
> > 小林 (koichik) です.
> > 
> > HOT deploy を含む SMART deploy は、規約に従ってコンポーネントを
> > 自動登録します。そのため、AutoRegister による明示的な登録は
> > 不要です。
> > 
> > そして HOT deploy が HOT に扱えるのは、規約に従って自動登録された
> > コンポーネントだけです。AutoRegister によって明示的に登録された
> > コンポーネントは非対象なので、
> > 
> > > HOT deploy対象クラス(com.aiueo.action.impl.loginActionImpl)が非対象クラスから参照されて通常のクラスローダーにロードされています。
> > 
> > となります。
> > 
> > 独自.dicon を削除して、インターセプタの登録などは customizer.dicon で
> > 行うようにしてください。
> > 
> > 
> > Date: Fri, 07 Oct 2011 11:28:51 +0900
> > From: [E-MAIL ADDRESS DELETED]
> > Subject: [Seasar-user:21048]  HOTdeploy が出来ない(非参照クラスから…が表示される)
> > 
> > > こんにちは。
> > > 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 mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> > --
> > {
> >   name: "Koichi Kobayashi",
> >   mail: "[E-MAIL ADDRESS DELETED]",
> >   blog: "http://d.hatena.ne.jp/koichik/",
> >   twitter: "@koichik"
> >  }
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

--
{
  name: "Koichi Kobayashi",
  mail: "[E-MAIL ADDRESS DELETED]",
  blog: "http://d.hatena.ne.jp/koichik/",
  twitter: "@koichik"
 }



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