如何去掉后台错误信息(在地址栏上输入在action类中没有方法名)
我是用s2sh,我想解决的问题是:去掉后台的报错信息,信息如下:
- Java code
2011-10-24 15:41:50,149 [org.apache.struts2.dispatcher.Dispatcher]-[WARN] Could not find action or resultThere is no Action mapped for namespace / and action name abcabc. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178) at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61) at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 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:128) 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:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619)
我的struts.xml里面的都是用通配符对应方法的,例如:如下
- XML code
<!-- 用户登录 --> <package name="login" extends="baseAction" namespace="/"> <action name="login_*" class="loginAction" method="{1}"> <result name="userLoginSuccess">/res/templet/user/templet/new/index.jsp</result> <result name="userLoginFail">/res/templet/user/templet/new/login.jsp</result> <result name="userLoginExitSuccess">/res/templet/user/templet/new/login.jsp</result> </action> </package>
我的web.xml是:如下
- XML code
<error-page> <error-code>404</error-code> <location>/res/templet/new/404Error.jsp</location></error-page><!-- struts2配置 --><filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <!--<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> --></filter>
我已经在web.xml里配置了404错误,会跳预先定好的页面,如果我在地址拦上输入http://local.XXX.com/abcabc(local.XXX.com是在tomcat里虚拟的路径)就报找不到对应的action,会报404,页面是跳到了我自定义的jsp页面,但后台还是报错打不到对应的action!怎样才能把后台的报错信息去掉或不会报错,郁闷中,在线等!!
[解决办法]
后台记录错误的日志~~你为啥要去掉呢??
[解决办法]
struts2有一个默认的action拦截所有未定义action的用户请求,用户输入信息错误全部要给默认的action处理!
[解决办法]
你还没解决的啊
- Java code
package interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;public class MyInterceptor implements Interceptor {public void destroy() {// TODO Auto-generated method stub}public void init() {// TODO Auto-generated method stub}public String intercept(ActionInvocation invocation) throws Exception {System.out.println("Action执行前插入 代码"); //执行目标方法 (调用下一个拦截器, 或执行Action) 捕获这块异常,输入自定义信息 final String res = invocation.invoke(); System.out.println("Action执行后插入 代码"); return res; }}