今天利用SS1H框架整合做练习的时候,出现了一个Action中没有包含指定方法的Exception
异常信息:
2011-8-18 20:50:07 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodException: Action[/userAction] does not contain specified method (check logs)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:261)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:113)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
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:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
想到了是自定义Action类中的方法调用时出现了问题。
从头到尾检查了N遍配置文件以及页面调用传参等代码块都未发现问题。。
许久后终于……
错误代码:
public ActionForward doQuery(ActionMapping mapping, ActionForm form,
ServletRequest request, ServletResponse response) throws Exception {
//内部实现略
}
原来问题出在方法的参数中。这也怪自己偷鸡不成蚀把米。
本想偷懒一下,直接利用重写DispatchAction类中的execute方法,改一下名字后直接使用。
没想到,粗心选错,重写了Action类中的execute,结果可想而知。。。
解决方案:
public ActionForward doQuery(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
//内部实现略
}
顺便分享一下出现此异常的其他几种情况:
1、自定义Action类需要继承DispatchAction类。
2、方法参数ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response 顺序也需一致。
3、方法的访问修饰符设置为public、不是protected,更不是其他。
4、动态调用Action,在struts-config.xml中要配置Action的parameter参数,
参数是页面传值的参数,值与要执行Action中的方法名相同。
<action-mappings >
<action
path="/userAction"
type="org.springframework.web.struts.DelegatingActionProxy"
name="userForm"
parameter="method" >
<forward name="success" path="/index.jsp"></forward>
<forward name="error" path="/error.jsp"></forward>
</action>
</action-mappings>
<html:form action="userAction.do?method=doQuery" method="post">
Name:<html:text property="user.fname"></html:text>
Area:<html:text property="user.farea"></html:text>
<html:submit value="Search Flowers"></html:submit>
</html:form>
5、页面表单提交方式为post,否则也有可能出现这种异常。
分享到:
相关推荐
然而,开发者们时常会遇到各种各样的错误,其中“SDK does not contain 'libarclite' at the path”是一个常见的问题,主要与Apple的Automatic Reference Counting (ARC)机制有关。本文将深入探讨这个错误的原因、...
标题中的问题"SDK does not contain 'libarclite'"指的是某个SDK缺少一个名为`libarclite`的库文件。这可能是一个错误或者是因为SDK未完整安装或配置不当导致的。 `libarclite`是一个特定的库,尤其在Android开发中...
### mybatisMapped报错 Statements collection does not contain value for 在使用MyBatis框架进行数据库操作时,可能会遇到“Mapped Statements collection does not contain value for”这样的错误提示。这通常...
clang: error: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the ...
- Check that Maven settings.xml does not contain http repositories - Check that Maven pom files do not contain http repository ----- - Check that Maven pom files do not contain http repository ----- -...
/* In the VMS compiler, M_PI is not defined in math.h */ #ifdef vms #define M_PI 3.14159265358979323846 #endif #ifndef KR #define M_PI 3.14159265358979323846 #endif #define FALSE 0 #define TRUE 1 #...
/* 去除默认的点状列表 */ padding: 0; /* 清除内边距 */ } .vertical-nav li { width: 150px; /* 定义列宽 */ margin-bottom: 10px; /* 设置行间距 */ } .vertical-nav a { display: block; /* 全部占...
- **contain** (v.) 包含; 包括; 容纳 - **词根词缀**:con- (共同) + -tain- (握, 持有) - **container** (n.) 容器 - **词根词缀**:contain + er #### 9. **contemporary** / **content** / **content** - **...
解决 Xcode 14.3,Xcode 15 旧项目可能报错 SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphone...
} /* 初始位置 */ 50% { transform: translateX(100px); } /* 跑到一半时的位置 */ 100% { transform: translateX(-100px); } /* 回到初始位置,形成奔跑循环 */ } ``` 接下来,我们需要将这个动画应用到HTML...
/* 合并边框 */ width: 100%; /* 全宽度 */ } th, td { text-align: center; /* 文本居中 */ padding: 8px; /* 单元格内边距 */ border: 1px solid #ddd; /* 边框 */ } th { background-color: #f2f2f2; /* ...
xcode 运行支持的arc文件,报错信息:SDK does not contain 'libarclite'
/* 让a标签具有块级元素的特性 */ background-image: url('按钮背景图片地址'); /* 设置背景图片 */ background-size: auto; /* 自适应宽度 */ background-repeat: no-repeat; /* 防止背景图片重复 */ padding:...
/* tm_unz contain date/time info */ typedef struct UZ_s { unsigned int tm_sec; /* seconds after the minute - [0,59] */ unsigned int tm_min; /* minutes after the hour - [0,59] */ unsigned int tm_...
The error is " List (Error) Dictionary.getNumber: Dictionary does not contain key:constant." Would be generous to take some time out and help me correct the error? 我无法纠正代码中的错误。错误如下 ...
/* 保持元素位置相对,以便于添加绝对定位的子元素 */ overflow: hidden; /* 防止内容溢出 */ background-image: url('你的背景图片地址'); /* 如果有背景图片 */ background-size: cover; /* 背景图片铺满整个...
ILSpy.exe是一款强大的开源反编译工具,专为.NET Framework和.NET Core应用程序设计。它允许开发者查看、理解和分析编译后的.NET程序集的内部结构,包括IL(中间语言)代码、元数据、类、方法、属性和事件等。...
has( + p) { /* style level 1 headings that are followed by a paragraph */}section : not ( : has ( h1 , h2 , h3 , h4 , h5 , h6 )) { /* style sections that don’t contain any heading elements */}body :...
官方离线安装包,亲测可用
/* 隐藏横向滚动条 */ } ::-webkit-scrollbar-thumb { background: transparent; /* 隐藏纵向滚动条 */ } ``` 然而,这种方法只适用于基于WebKit的浏览器。对于Firefox和其他非WebKit浏览器,我们需要使用不同的...