前幾天來了個小任務,把某項目中某人的郵件地址改了下。
由於對項目不熟悉,於是采用find方式找出app中所有包含某人郵件地址的文件都找出來了。
xml,properties大約三四個,還有兩個class。
當時也沒想太多,把class像xml一樣用VI改了,心想改的是可見文本,應該問題不大,然后重啟tomcat。也沒測試一下。
今天打開發布在tomcat上的url,發現打不開了,心想應該是修改class導致的。到tomcat_home的logs文件夾下一看,還真是那兩個類出錯了,而且當時沒留下備份,當時那刻還是挺慌的。
於馬上翻文檔,終於從SVN上下載了當時代碼,三年前的,當年的工具也沒有,還好Java代碼是全的,於是用MyEclipse新作工程,再導入需要的包,修改文本值,還好,class順利編寫出來了。
再FTP登錄,用新class替換老class,重啟TOMCAT,項目如願跑起來了,這下子真正清楚,為啥很多文章反復強調一定要把配置信息寫到xml或是properties文件里面了。對開發團隊來說,也許修改XML和JAVA是同樣的工作量,但是對運維團隊就大不一樣了。
有應急預案,冷靜沉着應對問題是今天沒出岔子的關鍵。
這件小事得到兩個教訓:1.修改文件前必須先備份好;2.class文件必須是編譯的版本,不能是修改的。如果大不幸沒有源碼,只要反編譯,修改得到的Java,再編譯回去。
於是記之,希望對遇到同樣問題的人有所幫助。
