中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java.io.NotSerializableException

在重啟Tomcat 5時發(fā)現(xiàn)報此錯誤.
查閱后發(fā)現(xiàn)tomcat 5之后重啟服務(wù)后tomcat會嘗試恢復(fù)session.

創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為尼河口企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站,尼河口網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

解決方法:

方法一(通過配置,使tomcat重啟后不重新恢復(fù)session):
在關(guān)閉和重啟Tomcat 5時, tomcat 會試圖 serialize存在的session資源. 如果 sessions中相關(guān)的對象沒有實現(xiàn) serializable 接口, 就會出現(xiàn)Cannot serialize session attribute XXX for 異常

java.io.NotSerializableException: ...........
如果你不想看到該異常, 也不想保存session. 那么你可以在項目部署描述文件中(如. test.xml,)(instead of just exploding the war) 的 <Context> tags中間 加上 :
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="false">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>

Manager元素可以嵌套在Context組件中。如果不包含它,會自動創(chuàng)建一個缺省的Manager配置,這對大多數(shù)需求都是足夠的。
詳見Tomcat服務(wù)器配置參考http://www.cnjsp.org/document/user/tuman/manager.html

這樣 tomcat 在關(guān)閉的時候就不會保存session資源了.

你也可以在server.xml中指定上面的值. 這也所有的程序都使用這個設(shè)置了.

方法二:
既然報沒有序列化的錯誤,那我們就把我們的對象序列化了就是了,實現(xiàn)起來也很簡單,就是把要放入session的對象序列化即可
public class YourClassName implements java.io.Serializable{
}
其他內(nèi)容都完全不需要變.

下面貼點(diǎn)Tom小貓的相關(guān)資料:

Jakarta Tomcat服務(wù)器是一種Servlet/JSP容器,經(jīng)歷了3.x到4.0.x到4.1.x的變遷,現(xiàn)在最新的版本為5.0.x,支持Servlet2.4和JSP2.0規(guī)范,從apache網(wǎng)站上下載Tomcat 5,在環(huán)境變量中配置一下Java_HOME,小貓就能生靈活現(xiàn)的跑起來了。若小貓啟動失敗,DOS窗口會自動關(guān)閉,若運(yùn)行catalina run命令DOS窗口是不會自動關(guān)閉的。

tomcat中有三個放置java庫的地方,分別是/server/lib、/shared/lib和/common/lib。
區(qū)別:/server/lib - 其中的jar文件只能被tomcat服務(wù)器訪問。
/shared/lib - 其中的jar文件可以被所有的Web應(yīng)用訪問,但不能被tomcat服務(wù)器訪問到。
/common/lib - Web服務(wù)和tomcat服務(wù)器都可以訪問的到。

server.XML文件解析- 文件位置是<蔜ALINA_HOME%>/conf/server.xml

配置虛擬主機(jī)
Host元素代表虛擬主機(jī),在同一個Engine元素下可以配置多個虛擬主機(jī)。打開server.xml文件可以發(fā)現(xiàn)Engine元素下已經(jīng)有一個名為localhost的Host元素了,可以在它后面加入下列代碼:

<Hostname="www.myname.com"debug="0"apPBase="c:myname"unpackWar="true"autoDeploy="true">
<alias>www.myname1.com</alias>
<alias>www.myname2.com</alias>
<Contextpathh="/helloapp"docBase="helloapp"debug="0"reloadable="true"/>
</Host>

Session的使用
Session是一種用來跟蹤用戶狀態(tài)的機(jī)制,那它是怎么實現(xiàn)的呢?Servlet容器通過在客戶端瀏覽器中保存一個Session ID來跟蹤Session,調(diào)用session.getID()可以看到你的Session ID是多少。如果客戶端支持Cookie,就把Session ID作為Cookie保持在瀏覽器中,現(xiàn)在絕大多數(shù)瀏覽器都會把Cookie功能打開,但如果用戶禁止了Cookie呢?Java Servlet API中提出了另外一種機(jī)制,Servlet容器可以重寫客戶requst的URL,把Session ID添加到URL信息中,HttpServletResponse接口提供了這樣的方法:public String encodeURL(String url)-先判斷如果沒有啟用Session,例如jsp中<%@ page session="false"%>或執(zhí)行了session.invalideate(),那么直接返回url,在判斷客戶端師父支持Cookie,如果不支持,就在url中加入Session ID的信息,然后返回修改后的url。

Session的管理
當(dāng)一個sesson開始時,Servlet容器會創(chuàng)建一個HttpSession對象,在某些情況下把這些Httpsession對象從內(nèi)存中轉(zhuǎn)移到文件系統(tǒng)中或數(shù)據(jù)庫中,需要訪問的時候在把它們載入到內(nèi)存中來。這樣做的好處有兩點(diǎn):節(jié)約了內(nèi)存的消耗,當(dāng)web服務(wù)器產(chǎn)生故障時,還可以從文件系統(tǒng)或數(shù)據(jù)庫中恢復(fù)Session的數(shù)據(jù)。
對于Session的管理,小貓?zhí)峁┝藘蓚€實現(xiàn)類:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManager。
StandardManager-是默認(rèn)的方法,當(dāng)Tomcat服務(wù)器重啟或重載的時候,會把Session對象保存到
<蔜ALINA_HOME%>/work/Catalina/honstname/applicatonname/SESSIONS.ser(默認(rèn)值)文件中,每個對象對應(yīng)一個文件,以Session ID為文件名,例如:

<Contextpath="/helloapp"docBase="helloapp"debug="0"reloadable="true">
<ManagerclassName="org.apache.catalina.session.StandardManager"debug="0"
maxActiveSessions="-1"checkInterval="60"/>
</Context>

參數(shù)說明:checkInterval-檢查session是否過期的時間間隔,以秒為單位,缺省值是60秒;
maxActiveSessions-可處于活動狀態(tài)的session數(shù)。

PersistentManager-提供了更加靈活的管理方式,具有容錯能力,可以及時把Session備份到Session Store中,可以控制內(nèi)存中Session的數(shù)量。
小貓還提供了實現(xiàn)持久化Session Store的接口,org.apache.catalina.Store,目前提供了兩個具體實現(xiàn)類:org.apache.catalina.FileStore和org.apache.catalina.JDBCStore。
server.xml中的配置File Store -

<Contextpath="/helloapp"docBase="helloapp"debug="0"reloadable="true">
<ManagerclassName="org.apache.catalina.session.PersistentManager"debug="0"saveOnRestart="true"
maxActiveSessions="-1"minIdleSwap="-1"maxIdleSwap="-1"maxIdleBackup="-1">
<StoreclassName="org.apache.catalina.session.FileStore"directory="mydir"/>
</Manager>
</Context>

參數(shù)說明:saveOnRestart-服務(wù)器關(guān)閉時,是否將所有的session保存到文件中;
maxActiveSessions-可處于活動狀態(tài)的session數(shù);
minIdleSwap/maxIdleSwap-session處于不活動狀態(tài)最短/長時間(s),sesson對象轉(zhuǎn)移到File Store中;

maxIdleBackup-超過這一時間,將session備份。(-1表示沒有限制)

JDBCStore配置的區(qū)別:

<StorecalssName="org.apache.catalina.JDBCStore"driverName="com.MySQL.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/tomsessionDB?user=root&password="
sessionTable="tomcat_session"sessionIdCol="session_id"sessionDataCol="session_data"
sessionValidCol="session_valid"sessionMaxInactiveCol="max_inactive"
sessionLastAccessedCol="last_access"sessionAppCol="app_name"checkInterval="60"debug="99"/>

Session失效時間的設(shè)定
在web.xml文件中,位于<servlet-mapping>和<welcome-file-list>元素之間加入如下代碼,單位為分鐘:

<session-config>
<session-timeout>60</session-timeout>
</session-config>

Tomcat的admin平臺和manager平臺
這是Tomcat中自帶的兩個Web應(yīng)用,位于<蔜ALINA_HOME%>/server/webapps/admin(manager),訪問地址是http://localhsot:8080/admin(manager)。要訪問這兩個Web應(yīng)用,需要在
<蔜ALINA_HOME%>/conf/tomcat-users.xml中添加如下內(nèi)容:
<user username="admin" password="1234" role="admin"/> //對應(yīng)admin Web應(yīng)用
<user username="manager" password="1234" role="manager"/> //對應(yīng)manager Web應(yīng)用

admin平臺把所有可配置的信息分為三類:Tomcat Server、Resources、User Definition。
Tomcat Server-相當(dāng)于server.xml中的<Server>元素及其子元素,<Service>、<Host>、<Context>、<Resources>、<Date Source>。
Resources-相當(dāng)于server.xml中的<GlobalNamingResources>,共有四種資源:Date Source(JNDI數(shù)據(jù)源)、Mail Sessioin(JNDI Mail Session資源)、Environment Entry(環(huán)境變量)、User Database(安全域中的用戶數(shù)據(jù)庫)。
User Definition-與tomcat-users.xml相對應(yīng)。

manager平臺-列出來所有Web應(yīng)用和狀態(tài),并提供了Start、Stop、Reload、 Undeploy命令,還可以發(fā)布
<蔜ALINA_HOME%>/webapps目錄下的Web應(yīng)用或系統(tǒng)文件任意位置的WAR文件。

本文題目:java.io.NotSerializableException
網(wǎng)頁路徑:http://www.rwnh.cn/article44/cgphee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、營銷型網(wǎng)站建設(shè)、軟件開發(fā)面包屑導(dǎo)航、網(wǎng)站設(shè)計、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
永清县| 荣昌县| 抚宁县| 宝丰县| 格尔木市| 镇原县| 沅江市| 济宁市| 隆化县| 晋江市| 米林县| 仙游县| 福泉市| 大石桥市| 新绛县| 绵竹市| 织金县| 胶州市| 资讯| 进贤县| 长顺县| 镇原县| 永城市| 广宗县| 秭归县| 岐山县| 衡阳县| 惠水县| 安塞县| 杭锦旗| 仙游县| 永胜县| 隆昌县| 淮安市| 阿克| 大余县| 古蔺县| 中西区| 宁安市| 滕州市| 玉林市|