原文:http://ribbonchen.blog.163.com/blog/static/1183165052011074500877/
=====================================================================
之前配置了weblogic通过代理插件weblogic.servlet.proxy.HttpProxyServlet进行代理转发,实际部署发现代理服务器把第一次请求转发后,服务器端的session丢失,第二次转发请求时重新开始了新的session,导致用户登出无法继续进行操作。
鼓捣后发现不行,于是另找出路。
重新温习了一遍cookie和session的相关基础知识,原来session在服务器端生成后分配的sessionID在客户端的保存方式是个cookie,它的生命周期在浏览器关闭后就会结束,而这个cookie的名字如果不特别设置,weblogic会以默认的名称“JSESSIONID”来设置这个cookie的名称,我两个应用的的session cookie名字都没有设置,客户端在第一次通过应用A请求代理转发到应用B时,应用B返回的同名session cookie覆盖了客户端原本的应用A的session cookie,所以导致了应用A session的丢失。
解决方法是,在应用B的weblogic.xml中的session descriptor标记中添加session cookie的名称设置,使其区别于A应用的session cookie名称,如:
<?xml version="1.0"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session-descriptor>
<cookie-name>MYSESSION</cookie-name>
</session-descriptor>
</weblogic-web-app>
回过头来看,发现之前鼓捣的http header p3p其实是在已经设好了session cookie的名称的前提下,解决在iframe中进行跨域访问时session丢失的问题。
另外,还有一些资料是说可以设置weblogic的session复制,如在weblogic.xml中:
<session-descriptor>
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated</param-value>
</session-param>
</session-descriptor>
其实这是在weblogic集群环境中才能起作用,对代理插件weblogic.servlet.proxy.HttpProxyServlet不起作用。
分享到:
相关推荐
Weblogic 代理负载均衡和 Session 复制 本文主要讲解了 Weblogic 代理负载均衡和 Session 复制的实现方式。...通过使用 Weblogic 代理服务器,可以实现负载均衡和 Session 复制,提高系统的可扩展性和可靠性。
1. **Session复制**:通过将session数据复制到集群中的其他成员,可以在不丢失数据的情况下提高系统的可用性。 - 配置session复制时,需要确保所有节点之间能够正确地进行数据交换。 - 可以通过WebLogic控制台或...
将WAR文件部署到WebLogic集群,通过Apache访问应用,观察是否能正确路由并返回预期结果。同时,Apache weblogic.xls可能是详细的配置或步骤记录,可以用来参考或验证配置过程。 总的来说,Apache集群和WebLogic的...
41. Spring Session 42. Monitoring and Management over JMX 43. Testing 43.1. Test Scope Dependencies 43.2. Testing Spring Applications 43.3. Testing Spring Boot Applications 43.3.1. Detecting Web ...
Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................
Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................
它通过在服务器端创建代理对象(Proxy Object),使得客户端可以通过调用这些代理对象的方法来执行服务器端的业务逻辑。 **1.2 第一个DWR程序:HelloWorld** - **1.2.1 将DWR放入你的工程** - 首先,需要将DWR的...
- **Session管理**:解决Hibernate Session的生命周期管理问题。 **4.7 DWR与WebWork**:WebWork是一个基于Java的MVC框架,本节介绍如何在WebWork中使用DWR。 **4.8 DWR与Acegi**:Acegi是一个基于Spring的安全...
但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。 24、...
Tomcat是轻量级的,相比其他更复杂的应用服务器如JBoss、WebLogic等,它具有较小的内存占用和更高的运行效率。 1.1 Tomcat简介 Tomcat最初由James Duncan Davidson开发,后来成为Apache软件基金会的一个项目。它...
在JavaEE应用开发中,Web容器是至关重要的组成部分,它负责管理Servlet、JSP和JavaBean等组件,为应用程序提供运行环境。而当系统需要处理大量并发请求或提高可用性时,Web容器的集群技术就显得尤为重要。本文将对几...
通过mod_jk或mod_proxy模块,实现Apache和Tomcat之间的负载均衡和反向代理。 5.2 与JBoss、WebLogic等应用服务器比较 Tomcat轻量级、易于部署,而JBoss、WebLogic等提供更完整的Java EE服务,适合大型企业级应用。 ...
2. **Apache HTTP Server与 mod_proxy**:结合Apache HTTP Server,通过mod_proxy模块,可以配置虚拟主机和代理规则,将请求转发至多个Tomcat实例。 3. **集群配置**:Tomcat自身支持集群配置,通过共享session数据...
通过直接JDBC访问数据库,提高了查询性能。 - **运行环境**:Sun Solaris和Windows 2000。 **案例二:在线销售系统(ECPort—An E-Store)** - **项目核心**:构建一个通用的在线购物平台,包括用户管理、订单管理等...