weblogic下同域不同埠下的跨域問題解決-設定session
阿新 • • 發佈:2019-02-20
參考資料
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程式碼
一 WebLogic設定Session超時
1 web.xml
設定WEB應用程式描述符web.xml裡的<session-timeout>元素。這個值以分鐘為
單位,並覆蓋weblogic.xml中的TimeoutSecs屬性
Java程式碼
此例表示Session將在30分鐘後過期
當<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程式碼
是否IdleConnectionTimeout引數
2 weblogic.xml
設定WebLogic特有部署描述符weblogic.xml的<session-descriptor>元素的
TimeoutSecs屬性。這個值以秒為單位
Java程式碼
二 防止Webloigic下的iframe的Session失效
請在Weblogic.xml新增如下程式碼
Java程式碼
原來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可以重新命名!解決在iframe中進行跨域訪問時session丟失的問題
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程式碼
- <?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程式碼
- <session-config>
- <session-timeout>30</session-timeout>
- </session-config>
此例表示Session將在30分鐘後過期
當<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程式碼
- <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程式碼
- <session-descriptor>
- <!--WebLogic設定Session超時時間,在web.xml中去掉session超時設定 -->
- <timeout-secs>7200</timeout-secs>
- </session-descriptor>
二 防止Webloigic下的iframe的Session失效
請在Weblogic.xml新增如下程式碼
Java程式碼
- <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可以重新命名!解決在iframe中進行跨域訪問時session丟失的問題