系统当中配置SessionListener,session刚被创建 一分钟不到就自动消毁了。(注意是自动消毁的)
直接看代码
web.xml配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<description>系统初始化</description>
<listener-class>com.zznode.iptvs.core.StartupListener</listener-class>
</listener>
<listener>
<description>FlexSessionListener</description>
<listener-class>com.zznode.iptvs.core.listener.SessionListener</listener-class>
</listener>
<!-- flex session -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<!-- Flex 配置 -->
<servlet>
<servlet-name>Flex</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Flex</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
java类SessionListener
public class SessionListener implements HttpSessionListener{
private static final Logger logger = Logger.getLogger(SessionListener.class);
/**
* Session创建
*/
public void sessionCreated(HttpSessionEvent arg0) {
logger.info("flexSession is created and FlexSession id is " + arg0.getSession().getId());
}
/**
* Session消毁处理
*/
public void sessionDestroyed(HttpSessionEvent arg0) {
HttpSession session = arg0.getSession();
logger.info("flexSession is destroyed and FlexSession id is " + session.getId());
SysUserInfo user = (SysUserInfo) session.getAttribute(GlobalSysInfo.USER_FLAG);
if(user != null){
logger.info(" userName is " + user.getUsername());
GlobalSysInfo.removeOnlineMaps(user.getId());
}
}
}
超时校验
import flex.messaging.FlexContext;
public class TimeOutInterceptor {
public Object before(ProceedingJoinPoint point) throws Throwable {
SysUserInfo user = (SysUserInfo) FlexContext.getHttpRequest().getSession().getAttribute(GlobalSysInfo.USER_FLAG);
if(user != null){
return point.proceed();
}else{
throw new ZznodeException(GlobalSysInfo.errorCodeMap.get(SystemConstants.SESSIONOUT));
}
// return point.proceed();
}
}
我登录界面是html,其它页面是flex
现在服务器一会儿就超时。一会就超时。这个超时时间好像是随机的。有可能十多分钟。有可能是默认的半小时,有的时候甚至一分钟或几秒钟就。
下面是session被创建和销毁的日志
2012-03-13 11:04:52 [http-bio-8008-exec-36] [INFO] - flexSession is created and FlexSession id is 2285DC5AC212E0EE6C8D32DDD6073B12
2012-03-13 11:05:04 [http-bio-8008-exec-36] [INFO] - flexSession is destroyed and FlexSession id is 2285DC5AC212E0EE6C8D32DDD6073B12
2012-03-13 11:05:06 [http-bio-8008-exec-36] [INFO] - flexSession is created and FlexSession id is 3CBBB80C9675E35CBD270209553ED857
2012-03-13 11:11:46 [http-bio-8008-exec-45] [INFO] - flexSession is created and FlexSession id is 9777A2EACDEC3739C7C35DA4010ADAE1
2012-03-13 11:11:46 [http-bio-8008-exec-45] [INFO] - flexSession is destroyed and FlexSession id is 9777A2EACDEC3739C7C35DA4010ADAE1
2012-03-13 11:11:51 [http-bio-8008-exec-45] [INFO] - flexSession is created and FlexSession id is FF55C0EB47DE4527D56A69A53682098B
2012-03-13 11:13:52 [ContainerBackgroundProcessor[StandardEngine[Catalina]] [INFO] - flexSession is destroyed and FlexSession id is 05ACB7CFE66D28DFCB302A47F8757095
2012-03-13 11:13:52 [ContainerBackgroundProcessor[StandardEngine[Catalina]] [INFO] - userName is admin
2012-03-13 11:13:52 [ContainerBackgroundProcessor[StandardEngine[Catalina]] [INFO] - flexSession is destroyed and FlexSession id is FF55C0EB47DE4527D56A69A53682098B
2012-03-13 11:13:52 [ContainerBackgroundProcessor[StandardEngine[Catalina]] [INFO] - userName is admin
注意大家看一下。session 日志。有的session刚被创建就销毁了。而有的又正常。请各位大牛给出原因和解决方式。如果满意的话的我再追加分数
相关推荐
富互联网应用程序(Rich Internet Applications,简称RIA)已经成为一种趋势,而Flex作为Adobe提供的RIA开发框架,结合Spring的优秀企业级服务管理和BlazeDS的数据传输能力,为开发者提供了强大的前后端交互解决方案...
BlazeDS是Adobe推出的一个开放源代码项目,它允许在Flex客户端与Java服务器之间进行实时双向通信,支持AMF数据格式,提供了数据推送、远程调用等功能。 在这个"ssh+flex+blazed"的集成过程中,我们主要涉及到以下几...
Flex SDK中的BlazeDS或LCDS提供AMF支持,使得ActionScript对象可以直接映射为服务器端的Java对象。 2. **Spring配置**:在Spring中,需要配置服务代理(Service Proxy)以便Flex客户端可以调用。这些代理通常基于...
2. ** BlazeDS与LiveCycle Data Services**:Adobe提供的BlazeDS和LiveCycle Data Services是用于连接Flex与Java或.NET服务器的中间件。它们支持Remoting和Messaging,使得Flex客户端能够调用服务端方法和接收实时...
2. ** BlazeDS/LiveCycle Data Services**:Adobe提供的BlazeDS或LiveCycle Data Services作为服务器端组件,为Flex和Spring之间的通信提供支持,允许Flex客户端与Spring服务交互。 3. **Spring-WS/Spring-Remoting...
7. **配置AMF**:为了使Flex能够与Spring服务通信,我们需要配置AMF(Action Message Format)通道,如BlazeDS或LCDS,这使得Flex可以使用二进制格式高效地与服务器交换数据。 8. **测试与调试**:编写Flex前端的UI...
Blazeds是一个Java远程控制(Remoting)和Web消息传递(Messaging)技术,它允许后端的Java应用程序与浏览器中的Adobe Flex应用程序进行交互。Blazeds以servlet的形式在Java应用服务器上运行,可兼容任何标准Java...
Spring MVC+BlazeDS+Flex框架实践:HelloWorld篇是一个典型的多层架构示例,它结合了Spring MVC作为后端控制器、BlazeDS作为数据通信中间件,以及Flex作为前端展示技术。本实践旨在帮助开发者了解如何将这些技术集成...
BlazeDS的主要目的是为Flex、AIR客户端应用提供与Java后端服务进行高效通信的能力。它的核心功能包括AMF协议支持、广播服务以及实时通信功能。 AMF(Action Message Format)协议是BlazeDS的关键特性之一,它允许...
BlazeDS,作为Adobe公司的一款免费开源产品,旨在简化企业级应用的开发过程,特别是那些涉及到Flex和Java技术的项目。它源于Adobe的另一款产品LiveCycle Data Services(LCDS)的开源版本,其核心优势在于提供了以下...
BlazeDS是一款由Adobe公司推出的免费开源产品,它是Lightweight ColdFusion Data Services (LCDS)的精简版,主要用于连接Flex或AIR客户端与Java服务端应用。BlazeDS提供了AMF(Action Message Format)协议,让...
BlazeDS的主要目的是为Flex和AIR客户端提供与Java服务端之间的高效通信。它提供了多种功能,包括AMF协议支持、广播数据、实时通信等。 在BlazeDS的应用程序结构中,客户端通常由Flex或AIR应用程序构成,它们通过...
要使用Flex,你需要在服务器上安装 BlazeDS 或 GraniteDS 这样的AMF服务器,以支持Flex客户端与Java服务端的数据通信。 7. **JAR包**:所有必要的JAR包,如Struts2的核心库、Spring框架、Hibernate库以及Flex所需的...
Flex通过 BlazeDS 或 LCDS(LiveCycle Data Services) 提供AMF支持,这些服务在Java端部署,作为数据通道,允许Flex客户端与服务器进行数据交互。 2. **服务接口定义**:在Java端,你需要定义一组服务接口,这些...
BlazeDS是一个Adobe提供的实时数据和远程调用解决方案,它可以作为Flex和Java之间的桥梁,实现双向数据流和远程过程调用。利用BlazeDS,Flex客户端可以订阅Java服务器上的事件,实时获取更新数据,同时也可以调用...
### 基于Flex三种通讯方式的Java配置与整合 #### 概述 在软件开发领域,特别是Web应用开发中,不同技术栈之间的交互是非常重要的环节。本文将围绕Flex技术与Java Web项目的集成展开,主要介绍如何通过三种不同的...