我是用s2sh,我想解决的问题是:去掉后台的报错信息,信息如下:
2011-10-24 15:41:50,149 [org.apache.struts2.dispatcher.Dispatcher]-[WARN] Could not find action or result
There 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里面的都是用通配符对应方法的,例如:如下<!-- 用户登录 -->
<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是:如下
<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!怎样才能把后台的报错信息去掉或不会报错,郁闷中,在线等!!

解决方案 »

  1.   

    但后台的日志catalina.out文件里一堆堆这样的错误信息,公司要求就是要把它去掉,因为我们的项目是商城,已在网上运营,客户输入什么地址我们都估计不了!
      

  2.   

    struts2有一个默认的action拦截所有未定义action的用户请求,用户输入信息错误全部要给默认的action处理!
      

  3.   

    try  catch   这个还不够吗?
      

  4.   

    请问这个异常类如何写?拦截There is no Action mapped for namespace / and action name.....这个错误码
      

  5.   

    当然肯定是有类去处理你输入的任何东西 要不然他怎么给你分配对应的ACTION  这个肯定是又基类的支持
    别的不说了, STRUTS1  拦截器 这里有文章供你分享下 
    http://jayje.iteye.com/blog/562128
     如果是STRUS2 很方便就不说了
      

  6.   

    可以提示一下这个异常类如何写吗?我是用struts2的
      

  7.   

    你还没解决的啊 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;    
    }

    Struts2拦截器需要在struts.xml中声明
    尝试下吧~~差不多应该就这样了