qq_38039328 2019-04-26 16:45 采纳率: 0%
浏览 382
已结题

OA项目拦截器代码报错,不知道是什么出了问题?

网页报错如下:
type Exception report

message

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:876)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:567)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:233)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.45 logs.

myeclipse报错如下:
ERROR Dispatcher:38 - Exception occurred during processing request: Action has already executed
java.lang.IllegalStateException: Action has already executed
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:234)
at cn.hy.oa.interceptor.CheckPrivilegeInterceptor.intercept(CheckPrivilegeInterceptor.java:52)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:544)
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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:233)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
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:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
at java.lang.Thread.run(Thread.java:662)

拦截器具体代码:
/**

  • 进行权限检查的拦截器
  • @author Administrator
    *
    */
    public class CheckPrivilegeInterceptor extends AbstractInterceptor{

    /**

    • 拦截方法 */

    public String intercept(ActionInvocation ai) throws Exception {
    //System.out.println("自定义的拦截器执行了");

    //从Session中获取登录用户
    User user= (User) ServletActionContext.getRequest().getSession().getAttribute("loginUser");
    
    String actionName=ai.getProxy().getActionName();
    String namespace=ai.getProxy().getNamespace();
    String url=namespace +actionName;
    System.out.println("访问url" + url);
    
    // 一 ,用户没有登录
    if(user == null){
        // a 如果用户访问的是登录功能,则放行
        if("/user_login".equals(url)){
            ai.invoke();
        }else{
            // b 如果用户访问的不是登录功能,则跳转到登录页面
            return "loginUI";
        }
    
    }else{
        // 二, 用户已经登录
    
    }
    
    return ai.invoke();
    

    }
    }

  • 写回答

2条回答

  • greengrass2011 2019-04-26 16:54
    关注

    ai.invoke()调用了两次

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划