[Seasar-user:16715] 【S2Struts】 HotDeployモードでIllegalArgumentExceptionが発生しています。
minami
[E-MAIL ADDRESS DELETED]
2009年 1月 22日 (木) 16:02:54 JST
お疲れ様です。南と申します。
早速質問です。
○ 問題
ローカル開発環境でHot Deployを利用しています。
java.lang.IllegalArgumentExceptionが発生しています。
○ 開発環境
S2 2.4.32
S2Dao 1.0.49
S2Struts 1.3.0
Server Tomcat 5.5.20
○ 解析用情報
クラスの定義は以下のようです。
※セキュリティーのため、XXXに置換しています。
============================================================================
@Component(instance = InstanceType.SESSION)
public class XX0101LoginUserInfoDto implements Serializable {
private static final long serialVersionUID = -6187338881905527161L;
private static final XxxCLogUtil logger
= XxxCLogUtil.getXxxCLogUtil(XX0101LoginUserInfoDto.class);
static {
logger.debug(XX0101LoginUserInfoDto.class);
logger.debug(XX0101LoginUserInfoDto.class.getClassLoader());
}
※変数は全てStringタイプです。
============================================================================
@StrutsAction(xxxx)
public class XX0101LoginAction extends XxxCommonAction {
/** ユーザ情報保持Dto宣言 */
@Resource(name = "xxxCA_XX0101_XX0101LoginUserInfoDto")
protected XX0101LoginUserInfoDto loginUserInfoDto;
============================================================================
① 起動時ログ
DEBUG 2009-01-22 15:24:53,390 [main] class com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto
DEBUG 2009-01-22 15:24:53,390 [main] [E-MAIL ADDRESS DELETED]
DEBUG 2009-01-22 15:24:54,281 [main] class com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto
DEBUG 2009-01-22 15:24:54,281 [main] [E-MAIL ADDRESS DELETED]
⇒2回出力されていろことも怪しいですね。
② 画面初期表示 RequestDumpFilter:before
セッションスコープに格納されていませんので、出力されていない。
③ 画面初期表示 RequestDumpFilter:after
DEBUG 2009-01-22 15:30:09,078 [http-8090-Processor24] class com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto
DEBUG 2009-01-22 15:30:09,078 [http-8090-Processor24] [E-MAIL ADDRESS DELETED]
DEBUG 2009-01-22 15:30:09,078 [http-8090-Processor24] クラス(com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto[xxxCA_XX0101_XX0101LoginUserInfoDto])のコンポーネント定義を登録します
** after *****************************************: /xxxCA/XX0101/XX0101Init.do
[session]xxxCA_XX0101_XX0101LoginUserInfoDto=com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto$$EnhancedByS2AOP$$[E-MAIL ADDRESS DELETED]
④ ログインボタン押下時
** before *****************************************: /XX0101Login.do
[session]xxxCA_XX0101_XX0101LoginUserInfoDto=com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto$$EnhancedByS2AOP$$[E-MAIL ADDRESS DELETED]
次に例外が発生します。
DEBUG 2009-01-22 15:35:22,687 [http-8090-Processor23] class com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto
DEBUG 2009-01-22 15:35:22,687 [http-8090-Processor23] [E-MAIL ADDRESS DELETED]
DEBUG 2009-01-22 15:35:22,703 [http-8090-Processor23] クラス(com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto[xxxCA_XX0101_XX0101LoginUserInfoDto])のコンポーネント定義を登録します
WARN 2009-01-22 15:35:22,953 [http-8090-Processor23] Unhandled exception
org.seasar.framework.exception.SIllegalArgumentException:
[ESSR0094]IllegalArgumentExceptionがクラス(com.xxx.xx.xxxxx.cl.action.xxxCA.XX0101.XX0101LoginAction)の
型(class com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto)のフィールド(loginUserInfoDto)に
型(com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto$$EnhancedByS2AOP$$b495e)の
値(com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto$$EnhancedByS2AOP$$[E-MAIL ADDRESS DELETED])を設定するときに発生しました。
対象のクラスは(com.xxx.xx.xxxxx.cl.action.xxxCA.XX0101.XX0101LoginAction$$EnhancedByS2AOP$$441b45)です。
at org.seasar.framework.util.FieldUtil.set(FieldUtil.java:167)
at org.seasar.framework.container.assembler.AbstractBindingTypeDef.setValue(AbstractBindingTypeDef.java:346)
at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindManual(AbstractBindingTypeDef.java:110)
at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:87)
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.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:129)
at org.seasar.struts.pojo.PojoProcessAction.execute(PojoProcessAction.java:75)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.seasar.struts.pojo.processor.commands.ExecuteActionAndClearPageValue.execute(ExecuteActionAndClearPageValue.java:41)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.struts.hotdeploy.filter.S2StrutsHotdeployFilter.doFilter(S2StrutsHotdeployFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:656)
at org.seasar.framework.util.FieldUtil.set(FieldUtil.java:162)
... 54 more
WARN 2009-01-22 15:35:22,968 [http-8090-Processor23] Exception from exceptionCommand 'servlet-exception'
org.seasar.framework.exception.SIllegalArgumentException:
[ESSR0094]IllegalArgumentExceptionがクラス(com.xxx.xx.xxxxx.cl.action.xxxCA.XX0101.XX0101LoginAction)の
型(class com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto)のフィールド(loginUserInfoDto)に
型(com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto$$EnhancedByS2AOP$$b495e)の値
(com.xxx.xx.xxxxx.cl.dto.xxxCA.XX0101.XX0101LoginUserInfoDto$$EnhancedByS2AOP$$[E-MAIL ADDRESS DELETED])を設定するときに発生しました。
対象のクラスは(com.xxx.xx.xxxxx.cl.action.xxxCA.XX0101.XX0101LoginAction$$EnhancedByS2AOP$$441b45)です。
at org.seasar.framework.util.FieldUtil.set(FieldUtil.java:167)
at org.seasar.framework.container.assembler.AbstractBindingTypeDef.setValue(AbstractBindingTypeDef.java:346)
at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bindManual(AbstractBindingTypeDef.java:110)
at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:87)
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.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:129)
at org.seasar.struts.pojo.PojoProcessAction.execute(PojoProcessAction.java:75)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.seasar.struts.pojo.processor.commands.ExecuteActionAndClearPageValue.execute(ExecuteActionAndClearPageValue.java:41)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.extension.filter.RequestDumpFilter.doFilter(RequestDumpFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.struts.hotdeploy.filter.S2StrutsHotdeployFilter.doFilter(S2StrutsHotdeployFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:656)
at org.seasar.framework.util.FieldUtil.set(FieldUtil.java:162)
... 54 more
解決出来なかった場合、開発環境をCoolDeployにすることを考えています。
開発期間も厳しい状況で、かつS2に初心者も多いので、
どうしてもHotDeployで開発していきたいという要望が出ております。
ご回答宜しくお願い致します。
Seasar-user メーリングリストの案内