[转帖Weblogic 之session_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4410 | 回复: 0   主题: [转帖Weblogic 之session        下一篇 
white
注册用户
等级:少校
经验:1327
发帖:305
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2011-8-2 9:42:45 | [全部帖] [楼主帖] 楼主

参考资料
1 关于WebLogic的Session丢失的问题

http://blog.csdn.net/DesignLife/article/details/2552186


2 tomcat向weblogic移植出现的问题系列 - session丢失问题

(其中一位网友回答不知是什么意思,要加什么文件)
http://netliving.iteye.com/blog/148485


3 java weblogic session 丢失

http://hi.baidu.com/leftstone/blog/item/3b34a4a19d4d0588471064f0.html


4 weblogic两个domain中jsp相互调用session丢失解决方法

http://www.4ucode.com/Study/Topic/1159787


5 关于WebLogic的Session丢失的问题

http://hi.baidu.com/goylsf/blog/item/d2446677d71e070ab051b98d.html


6 weblogic通过代理插件weblogic.servlet.proxy.HttpProxyServlet跨域访问导致session丢失问题的解决

http://ribbonchen.blog.163.com/blog/static/1183165052011074500877/


7 WebLogic如何设置session超时时间

http://tonyaction.blog.51cto.com/227462/201900


注意网上有很多的Webloigc不是最新的配置
位于WEB-INF/WebLogic.xml配置如下:

Java代码

  1. <?xml version='1.0' encoding='utf-8'?>    
  2. <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"    
  3.                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  4.                  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
  5.                  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd  
  6.                  http://www.bea.com/ns/weblogic/90  
  7.                  http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd"> 
  8.     <container-descriptor>   
  9.         <prefer-web-inf-classes>true</prefer-web-inf-classes>   
  10.     </container-descriptor>   
  11.     <context-root>/</context-root>   
  12.     <session-descriptor>   
  13.         <!--WebLogic设置Session超时时间,在web.xml中去掉session超时设置  -->   
  14.         <!-- <timeout-secs>7200</timeout-secs> -->   
  15.         <cookie-name>JSESSIONID1</cookie-name>   
  16.     </session-descriptor>   
  17. </weblogic-web-app>  

<?xml version='1.0' encoding='utf-8'?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
http://www.bea.com/ns/weblogic/90
http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
<context-root>/</context-root>
<session-descriptor>
<!--WebLogic设置Session超时时间,在web.xml中去掉session超时设置 -->
<!-- <timeout-secs>7200</timeout-secs> -->
<cookie-name>JSESSIONID1</cookie-name>
</session-descriptor>
</weblogic-web-app>


一 WebLogic设置Session超时

1 web.xml
设置WEB应用程序描述符web.xml里的<session-timeout>元素。这个值以分钟为
单位,并覆盖weblogic.xml中的TimeoutSecs属性


Java代码

  1. <session-config>   
  2.     <session-timeout>30</session-timeout>   
  3. </session-config>  


<session-config>
<session-timeout>30</session-timeout>
</session-config>


此例表示Session将在54分钟后过期
当<session-timeout>设置为-2,表示将使用在weblogic.xml中设置的
TimeoutSecs这个属性值。
当<session-timeout>设置为-1,表示Session将永不过期,而忽略在
weblogic.xml中设置的TimeoutSecs属性值。
该属性值可以通过console控制台来设置
在weblgoic的console中:xxDomain->Servers->xxServer->Protocols->HTTP 中有一个关于Post Timeout的配置,但这个参数一般使用默认值即可
一般是通过Services-->JDBC-->Connection Pools-->MyConnection(你所建立的连接池名)-->Configration-->Connections 里的Inactive Connection Timeout这个参数来设置的,默认的为0,表示连接时间无限长。你可以设一个时间值,连接超过这个时间值,它会把连接强制放回连接池

Java代码

  1. <Server AcceptBacklog="62" CompleteHTTPMessageTimeout="480"
  2. CompleteMessageTimeout="480" IdleC   
  3. ListenAddress="" ListenPort="7001" Name="myserver"
  4. NativeIOEnabled="true" ReliableDeliveryPolicy="RMDefaultPolicy"
  5. ServerVersion="8.1.4.0">  


<Server AcceptBacklog="62" CompleteHTTPMessageTimeout="480"
CompleteMessageTimeout="480" IdleC
ListenAddress="" ListenPort="7001" Name="myserver"
NativeIOEnabled="true" ReliableDeliveryPolicy="RMDefaultPolicy"
ServerVersion="8.1.4.0">


是否IdleConnectionTimeout参数

2 weblogic.xml
设置WebLogic特有部署描述符weblogic.xml的<session-descriptor>元素的
TimeoutSecs属性。这个值以秒为单位


Java代码

  1. <session-descriptor>   
  2.         <!--WebLogic设置Session超时时间,在web.xml中去掉session超时设置  -->   
  3.        <timeout-secs>7200</timeout-secs>           
  4. </session-descriptor>  

<session-descriptor>
<!--WebLogic设置Session超时时间,在web.xml中去掉session超时设置 -->
<timeout-secs>7200</timeout-secs>
</session-descriptor>



二 防止Webloigic下的iframe的Session失效
请在Weblogic.xml添加如下代码

Java代码

  1. <session-descriptor>       
  2.         <cookie-name>JSESSIONID1</cookie-name>   
  3. </session-descriptor>  


<session-descriptor>
<cookie-name>JSESSIONID1</cookie-name>
</session-descriptor>


原来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名称.其中的 cookie-name可以重命名




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论