首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个具有websphere扩展的web项目之间共享会话托管bean

在两个具有websphere扩展的web项目之间共享会话托管bean
EN

Stack Overflow用户
提问于 2014-07-25 07:43:49
回答 2查看 987关注 0票数 0

我们必须在两个不同的web模块中使用相同的会话,在一个ear项目中使用websphere扩展.how来从其他web模块中的一个web模块获得会话。我们正在使用IBMRAD7.5,JSP7.0,WebSphere框架工作。

到目前为止,我们已经尝试过这种方法。

  1. 我们的项目结构

公共会话EAR项目web项目1 web项目2

  1. 我们已将websphere扩展应用于我们的项目。
  2. 我们的网络项目1包含了我们发送会话的first.jsp。代码- getFacesContext().getExternalContext().getSessionMap().put("key",公共会话bean);4.我们的web项目2包含接收会话的sec.jsp。代码- getFacesContext().getExternalContext().getSessionMap().get("key");上面的代码返回一个对象,但是我们需要公共会话,所以我们将返回的对象类型转换为公共会话类型。
  3. 现在,当我们在服务器上运行first.jsp时,会出现错误。

java.lang.ClassCastException: common.session.Sess与common.session.Sess不兼容

EN

回答 2

Stack Overflow用户

发布于 2014-07-25 08:25:39

尝试将EAR类加载器策略更改为应用程序并使用Singleton模式,或者您可以使用DistributedMap (7.0.0/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/websphere/cache/DistributedMap.html?lang=en),这是WebSphere特有的,但是可以为对象存储和检索提供一个非常强大的类似于映射的接口。

票数 0
EN

Stack Overflow用户

发布于 2014-07-25 09:20:04

看看这个页面-- 组装,以便会话数据可以共享。,它描述了允许应用程序之间会话共享所需完成的所有步骤和配置。一般来说,你需要:

  • 使用放置在会话中的所有对象创建独立的共享库
  • 在应用程序中检索会话对象。 HttpSession session = request.getSession();
  • 将此对象强制转换为IBMSession对象并调用getIBMApplicationSession方法。 ((IBMSession)session).getIBMApplicationSession();IBMApplicationSession appSession =
  • 像普通会话对象一样使用appSession。
  • 将应用程序配置为使用共享会话扩展-创建具有以下属性的ibm- application -ext.xml

<?xml version="1.0" encoding="UTF-8"?>

代码语言:javascript
复制
<application-ext xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-application-ext_1_1.xsd" version="1.1">
   <shared-session-context value="true"/>
</application-ext>
  • 在安装过程中将共享库映射到应用程序
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24950546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档