有没有人知道如何共享会话变量并从websphere门户中的任何portlet恢复,例如我在一个portlet中设置了一个会话变量(Object),我想得到该变量的值。我怎么能这样做?。
我正在使用Websphere门户8,而我的IDE是RAD 8.5
此致
答案 0 :(得分:1)
如果您的portlet部署在同一个webapp中,则可以使用PortletSession,其范围为APPLICATION:portletRequest.getSession()。setAttribute(“name”,“value”,PortletSession.APPLICATION_SCOPE)。
否则,您需要创建自己的共享服务来存储变量。本文似乎可以帮助您:http://www.ibm.com/developerworks/websphere/library/techarticles/0602_hepper/0602_hepper.html
答案 1 :(得分:0)
如果要跨不在同一Web模块(war文件)中的portlet共享对象/状态,并且您在WebSphere Portal中,则可以使用名为DynaCache的WebSphere Application Server专有服务。它是成熟和常用的。您可以设置一个不仅跨portlet(实际上是同一JVM中的任何应用程序代码)共享的Map对象,还可以设置为跨JVM共享对象(如在群集中)。关键编程接口:DistributedMap。在设置缓存实例时,这是一个非常好的blog post,因此您的portlet可以通过JNDI查看地图,并像其他任何Map<K,V>
一样获取或放置它。