[Seasar-user:18000] S2Struts1.3.1 へのバジョンアップによる Forward エラーについて

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 7月 14日 (火) 18:12:59 JST


松本と申します。
お世話になっております。
   
  [E-MAIL ADDRESS DELETED]宛にメールしていましたが、
こちらの方がより多くの情報が集まるとの助言等を頂きましたので、
こちらにメールさせて頂きます。
  長文になりますが、なにとぞご容赦下さい。
   
  テスト環境は
JDK:           1.5.0
Tomcat:        5.5
S2Container:   2.4.26
S2Struts:      1.3.0-RC6、1.3.1
struts-taglib: 1.3.8
   
  S2Strutsのバージョン1.3.0-beta-3では,正常に動作していたものが、
1.3.0-RC6, 1.3.1にバージョンアップした際に、正常に動作しなくなりました。
Action内で、アノテーションを用いています。
   
  「[Seasar-user:15522] [S2Struts] S2Struts1.3.0-RC6からActionへのforwardでエラー」の件で、
1.3.0-RC6から1.3.1にバージョンアップし、web.xmlに設定を追加しました。
1.3.0-RC6と1.3.1の両方で同じ現象が発生しています。
   
  以下に、ソースの一部と例外の情報等を記述します。
設定など確認すべき点がございましたらご教示いただけないでしょうか。
   
  HogeAaaActionにひもづくhtmlを表示し、そのhtmlからsubmitにより、
HogeAaaActionのhogeBaaメソッドを呼び出しています。
その後、Forward先のHogeBbbAction.javaのexecuteが呼び出されていましたが、
下記のExceptionが発生し、正常に動作していない状態です。
   
  デバッグ実行で、
AbstractSelectActionのexecuteメソッドのローカル変数path
を確認を試みたところ、AbstractSelectActionのexecuteが2度(再帰的?)呼ばれていました。
1度目に呼ばれた時には、path=/hogeAaa/bbbとなり、期待している文字列でしたが、
2度目に呼ばれた時には、path=/hogeAaaとなり、予期しない文字列でした。
予期しない文字列のために、Forward先が発見できないために例外が発生しているようです。
   
  因みに、
/hogeAaa/bbb.do?command=executeとURLを直接入力した場合は、正常に動作しました。
直接入力で正常に動作する場合と、Forwardでうまく動作しない場合では、
呼び出し元の画面のActionの@StrutsActionForwardを元にForwardしているか、
Forward先のActionを直接呼び出しているかの違いがあります。
   
  さらに、@StrutsActionForwardのcommand=executeの設定がないものでは、
正常にForwardできました。
違いは@StrutsActionのcommand=executeの指定のありなしに伴う、
  @StrutsActionの指定くらいです。
   
  **********************************************************
HogeAaaAction.java(一部抜粋)
@StrutsAction(path = "/hogeAaa/xxxxx")
public class HogeAaaAction {
{
 @StrutsActionForward(path = "/hogeAaa/bbb.do?command=execute")
 public static final String HOGE_A= "hogeBbb";
   @StrutsActionForward(path = "/hogeAaa/xxx.do")
 public static final String HOGE_X= "hogeXxx";
   _/**
  * @return {@link #HOGE_A}
  */
 public String hogeBaa() {
  return HOGE_A;
 }
 _/**
  * @return {@link #HOGE_X}
  */
 public String hogeXaa() {
  return HOGE_X;
 }
}
***********************************************************
***********************************************************
HogeBbbAction.java(一部抜粋)
@StrutsAction(path = "/hogeAaa/bbb", parameter = "command")
public class HogeBbbAction{
 @Binding
 private HogeBbbService hogeBbbService;
    @StrutsActionForward(path = "/hogeAaa/ccc.html")
    public static final String SUCCESS = "success";
    _/**
     * @return 遷移先
     */
    public String execute(){
        hogeBbbDto.clear();
        hogeBbbService.initialize(hogeBbbDto);
        return SUCCESS;
    }
}
***********************************************************
 
[WARN ] TP-Processor10 2009/7/09 19:23:33,636 org.apache.struts.chain.commands.AbstractExceptionHandler.execute(AbstractExceptionHandler.java:95) Unhandled exception
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
        at org.apache.struts.chain.commands.AbstractSelectAction.execute(AbstractSelectAction.java:71)
        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:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:58)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.struts.hotdeploy.filter.S2StrutsHotdeployFilter.doFilter(S2StrutsHotdeployFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:70)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at jp.co.np.hoge.servlet.filter.SingleSignOnSlaveFilter.doFilter(SingleSignOnSlaveFilter.java:155)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
[WARN ] TP-Processor10 2009/7/09 19:23:33,639 org.apache.struts.chain.commands.ExceptionCatcher.postprocess(ExceptionCatcher.java:165) Exception from exceptionCommand 'servlet-exception'
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
        at org.apache.struts.chain.commands.AbstractSelectAction.execute(AbstractSelectAction.java:71)
        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:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:58)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.struts.hotdeploy.filter.S2StrutsHotdeployFilter.doFilter(S2StrutsHotdeployFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:70)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at jp.co.np.hoge.servlet.filter.SingleSignOnSlaveFilter.doFilter(SingleSignOnSlaveFilter.java:155)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
[ERROR] TP-Processor10 2009/7/09 19:23:33,641 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:253)  action Servlet.service()
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
        at org.apache.struts.chain.commands.AbstractSelectAction.execute(AbstractSelectAction.java:71)
        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:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:58)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.struts.hotdeploy.filter.S2StrutsHotdeployFilter.doFilter(S2StrutsHotdeployFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:70)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:77)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at jp.co.np.hode.servlet.filter.SingleSignOnSlaveFilter.doFilter(SingleSignOnSlaveFilter.java:155)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
  以上、よろしくお願いします。

 

 
---------------------------------
Power up the Internet with Yahoo! Toolbar.
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20090714/b687edd7/attachment.html>


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