【发布时间】:2018-03-22 09:52:09
【问题描述】:
会话无法使用 mod_jk 负载平衡器(来自 httpd Web 服务器)。但是,相同的代码在应用程序服务器中运行良好。
下面是worker.properties:
worker.list=loadbalancer,status,web
worker.node0.port=8009
worker.node0.host=10.50.26.19
worker.node0.type=ajp13
worker.node0.lbfactor=1
worker.node0.socket_keepalive=false
worker.node0.connect_timeout=10000
worker.node0.prepost_timeout=10000
worker.node0.socket_timeout=60
worker.node0.connection_pool_timeout=600
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node0
worker.loadbalancer.sticky_session=1
Portlet 1 中的 Java 代码:
PortletSession portletSession = actionRequest.getPortletSession();
portletSession.setAttribute("username",reg.getFname(), PortletSession.APPLICATION_SCOPE);
Portlet 2 中的 JSP 代码:
PortletSession portletSessionobject = renderRequest.getPortletSession();
userName=(String)portletSessionobject.getAttribute("username",PortletSession.APPLICATION_SCOPE);
在两个 portlet 中,liferay-portlet.xml 中都应用了以下属性
<private-session-attributes>false</private-session-attributes>
但无法在 Web 服务器的 Portlet 2 JSP 页面中获取用户名,它返回 null。但在应用程序服务器中,价值正在按预期出现。请提出建议。
【问题讨论】:
标签: java jsp session liferay mod-jk