为Weblogic编写自定义会话存储

时间:2009-10-27 13:50:12

标签: jsp session weblogic

我想将JSP会话数据存储在WebLogic服务器中的自定义存储(我指定的存储)中。是否有我可以实现的接口或基类,或者我可以编写的过滤器,我可以通过配置插入,并使我能够在我的商店中存储会话数据?我做了一些初步搜索,但找不到任何入口点。任何人都知道如何做到这一点。

  

实际上我想使用性能良好的商店,并支持跨多个服务器(不复制)分区数据。有许多这样的商店(缓存)可用。因此,通过编写会话存储提供程序,我可以将会话数据存储在我的分区(或分区复制)存储中,并在多个Web服务器之间共享它们。

2 个答案:

答案 0 :(得分:0)

我不认为Weblogic允许你这样做。据我所知,没有可公开实现的界面,Weblogic没有提供任何钩子或方式来插入persistent session configuration中的实现。

说实话,我真的想知道为什么要实现自己的持久存储(这更多是应用服务器提供商的责任)。使用现有的implementation之一,我无法获得无法实现的功能。也许您可以使用文件商店并设置自定义persistent-store-dir。但实际上,如果没有关于目标的更多细节,我不能确定能指出正确的方向。

答案 1 :(得分:0)

WebLogic没有公共API来控制会话数据。

如果您愿意做很多工作,可以修改Web应用程序以拦截所有会话调用并将数据存储在您想要的位置。有可用的标准API:ServletContextListener,ServletContextAttributeListener,ServletRequestListener,ServletRequestAttributeListener,HttpSessionListener和HttpSessionAttributeListener。您可以在web.xml中注册监听器。

如果您雄心勃勃,可以编写代码来自动检测网络应用。 Oracle Coherence Web产品采用这种方法。请参阅page上的“Coherence Web安装程序如何检测Java EE应用程序”一节。它给出了必要步骤的高级描述。