JSP的重新編譯
這2天改頁(yè)面的BUG的時(shí)候遇到個(gè)很郁悶的問(wèn)題,每次修改過(guò)JSP都不去重新Load,后來(lái)經(jīng)人提醒是時(shí)間戳的問(wèn)題,每次保存修改的JSP的時(shí)候都要把系統(tǒng)時(shí)間改成2008年,weblogic才能重新編譯。刪除application,重新explod也不行。
上網(wǎng)查了下資料,才發(fā)現(xiàn)weblogic重新編譯的條件。
JSP容器通過(guò)實(shí)現(xiàn)StaleChecker接口調(diào)用_staticIsStale()方法。該實(shí)現(xiàn)接收一個(gè)帶有清單1中所示參數(shù)的回調(diào)(isResourceStale())。有了這些參數(shù),該實(shí)現(xiàn)可以?xún)H接收所有必需的信息,以推斷給定資源是否過(guò)期。當(dāng)資源(參數(shù)1)/foo.jsp的時(shí)間戳(參數(shù)2)比存儲(chǔ)在已編譯類(lèi)文件中的時(shí)間戳還要新(參數(shù)更大)時(shí),或者當(dāng)發(fā)行版本不同時(shí),JSP容器認(rèn)為JSP.class文件“過(guò)期”。
清單1. staticIsStale()方法






所以之前的問(wèn)題可能是老的class文件的時(shí)間戳是2008年,只要找到編譯后的class文件刪除,應(yīng)該就可以重新編譯了。項(xiàng)目中JSP class的目錄是:
C:\bea\user_projects\domains\mydomain\myserver\.wlnotdelete\extract\myserver_appliesEAR_applies\jsp_servlet。
關(guān)于時(shí)間戳的詳細(xì)介紹參考:
posted on 2007-11-03 19:46 licwei 閱讀(1124) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): Technology