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 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器