[Seasar-user:21590] Re: Action実装構成の質問

Funa [E-MAIL ADDRESS DELETED]
2013年 4月 3日 (水) 15:42:24 JST


ひが様

ありがとうございます。
CoolDeployで同じ現象が起きないか様子見します。


(2013/04/03 14:43), YASUO HIGA wrote:
> ひがです。
>
> HOT deployまわりでトラブった時は、とりあ えずCOOL deployにするのがおす
> すめ。
> ------------------------------------------------------------------------
> *差出人:* seasar-user-bounces @ ml.seasar.org
> [seasar-user-bounces @ ml.seasar.org] が次の人の代理で送信しました: Funa
> [funa @ swrmt.sakura.ne.jp]
> *送信日時:* 2013年4月3日 14:04
> *宛先:* seasar-user @ ml.seasar.org
> *件名:* [Seasar-user:21588] Action実装構成の質問
>
> こんにちは。
>
> Actionの実装構成について質問があります。
> 現在、Ajax用のActionと画面遷移(Submitを介した)のActionを分けたActionクラ
> ス構成にしています。
>
> 操作性を良くする為、データの取得・更新系は全てAjax実装です。
>
> そこで、常に起きている訳ではなく、画面をしばらく放置してAjax通信を行うと
> 以下のExceptionが良く出ます。
> ただ、同じ動作は繰り返すと再び正常に動きます。
>
>
>
> 2013/04/03 13:34:27 org.apache.catalina.core.ApplicationDispatcher invoke
> 致命的: サーブレット action のServlet.service()が例外を投げました
> org.seasar.framework.beans.IllegalPropertyRuntimeException: [ESSR0059]ク
> ラス(app.action.ajax.AmntAction$$EnhancedByS2AOP$$a0847)のプロパティ
> (mngUserService)の設定に失敗しました。理由は
> org.seasar.framework.exception.SIllegalArgumentException:
> [ESSR0094]IllegalArgumentExceptionがクラス(app.service.MngUserService)
> [org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ ddab20]
> の型(app.service.LoginTblService)
> [org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ ddab20]
> のフィールド(loginTblService)に型
> (app.service.LoginTblService$$EnhancedByS2AOP$$1421ab0)[WebappClassLoader
> context: /ec-sample
> delegate: false
> repositories:
> /WEB-INF/classes/
> ----------> Parent Classloader:
> org.apache.catalina.loader.StandardClassLoader @ 5dcec6
> ]の値(app.service.LoginTblService$$EnhancedByS2AOP$$1421ab0 @ d6f628)を設
> 定 するときに発生しました。対象のクラスは
> (app.service.MngUserService$$EnhancedByS2AOP$$9d963f)
> [org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ ddab20]
> です。
> at
> org.seasar.framework.container.assembler.AbstractBindingTypeDef.getValue(AbstractBindingTypeDef.java:297)
> at
> org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindAuto(AbstractBindingTypeDef.java:149)
> at
> org.seasar.framework.container.assembler.BindingTypeMustDef.doBind(BindingTypeMustDef.java:45)
> at
> org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:91)
> at
> org.seasar.framework.container.assembler.AccessTypeFieldDef.bind(AccessTypeFieldDef.java:50)
> at
> org.seasar.framework.container.assembler.AccessTypeFieldDef.bind(AccessTypeFieldDef.java:42)
> at
> org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:56)
> at
> org.seasar.framework.container.deployer.RequestComponentDeployer.deploy(RequestComponentDeployer.java:67)
> at
> org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:111)
> at
> org.seasar.struts.config.S2ActionMapping.getActionForm(S2ActionMapping.java:329)
> at
> org.seasar.struts.action.ActionFormWrapper.<init>(ActionFormWrapper.java:62)
> at
> org.seasar.struts.action.ActionFormWrapperClass.newInstance(ActionFormWrapperClass.java:82)
> at
> org.seasar.struts.config.S2FormBeanConfig.createActionForm(S2FormBeanConfig.java:44)
> at
> org.seasar.struts.action.S2RequestProcessor.processActionForm(S2RequestProcessor.java:211)
> at
> org.seasar.struts.action.S2RequestProcessor.process(S2RequestProcessor.java:103)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:86)
> at
> org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
> at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
> at org.seasar.struts.filter.RoutingFilter.forward(RoutingFilter.java:219)
> at org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:99)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
> at
> org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: org.seasar.framework.exception.SIllegalArgumentException:
> [ESSR0094]IllegalArgumentExceptionがクラス(app.service.MngUserService)
> [org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ ddab20]
> の型(app.service.LoginTblService)
> [org.seasar.framework.container.hotdeploy.HotdeployClassLoader @ ddab20]
> のフィールド(loginTblService)に型
> (app.service.LoginTblService$$EnhancedByS2AOP$$1421ab0)[WebappClassLoader
> context: /ec-sample
> delegate: false
> repositories:
> /WEB-INF/classes/
> ----------> Parent Classloader:
>
>
> これはAction構成の問題でしょうか?
> と言うのも同じActionクラスに複数のService層を配置しています。
> 本来、他の画面で使われるexecuteのメソッドも同じクラスに置いています。
>
> 複数の使わないテーブルのDBコネクションを保持したこういう構成は
> パフォーマンス面でもあまり良く無いのでしょうか?
>
> 初歩的な質問で申し訳ありませんが、
> お聞かせいただければ幸いです。
>
> public class AmntAction extends ActionBase {
>
> @Resource
> protected SoshikiMstService soshikiMstService;
>
> @Resource
> protected CategoryMstService categoryMstService;
>
> @Resource
> protected UserMstService userMstService;
>
> @Resource
> protected LoginTblService loginTblService ;
>
>
> // ///////////////////////////////////////////////
>
> @Execute(validator = false)
> public String userSearch() throws IOException {
> //userMstServiceを使ったユーザ管理画面用
> }
>
> @Execute(validator = false)
> public String userUpdate() throws IOException {
> //userMstServiceを使ったユーザ管理画面用
> }
>
> @Execute(validator = false)
> public String userDelete() throws IOException {
> //userMstServiceを使ったユーザ管理画面用
> }
>
> // ///////////////////////////////////////////////
>
> @Execute(validator = false)
> public String soshikiSearch() throws IOException {
> //soshikiMstServiceを使った組織管理画面用
> }
>
> @Execute(validator = false)
> public String soshikiUpdate() throws IOException {
>   //soshikiMstServiceを使った組織管理画面用
> }
>
> @Execute(validator = false)
> public String soshikiDelete() throws IOException {
>   //soshikiMstServiceを使った組織管理画面用
> }
>
>   ※他も同等の構成で続く。
> }
>
>
>
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user

-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20130403/eec64765/attachment.html>


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