Windows下war包部署到Linux下Tomcat出現的問題


最近,將Windows下開發的war包部署到Linux下的Tomcat時報了一個錯誤:tomcat error in opening zip file。按理說,如果正常,當把war包復制到webapps目錄下時,會自動解壓縮到與包名同名的文件夾下,但是事實並沒有解壓縮。所以到logs文件夾下看,報了上面的錯誤。

百度一下,可能是java版本與Tomcat版本和Linux下的不一致,一看,果然不一致,但其實版本都很接近,而且,詢問之前的開發人員,他們的war包是可以自動解壓縮的,也就是說不是版本的問題。還有就是通過ftp上傳文件時沒有使用二進制的傳送方式,這個也不是原因,因為我用的就是binary模式。那到底是什么原因?然后我又仔細看了一下報錯的信息,發現有一個是unreadable!為什么會是沒有辦法讀呢?我潛意識相當可能是文件的權限問題。

果斷ls -lt,看一下所有文件的權限,

第一列:drwxr-xr-x代表文件的類型及權限

以d開頭的為文件夾,以-開頭的為文件,

以l開頭的為連接文件

再細分,d后面其實是3個組合,每一個組合有rwx構成,分別表示文件擁有者的權限,組的權限和其他用戶的權限

第2列:文件的鏈接數.

第3、4列:分別代表擁有文件的用戶和組

第5列:文件的大小。

第6列:文件最后的修改時間。

第7列:文件名

原先ICardSys.war是-rw-r-----,也就是除了root用戶和system組之外,其他用戶都無法讀。所以,我想着應該給其他用戶加一個讀的權限,這樣也行可以解決unreadable的問題。文件權限修改,需要用到chmod,r代表4,w代表2,x代表1,比如rwx就用7來表示,所以我們chmod 644 ICardSys.war一下試一試。此時,發現可以自動解壓war包了,而且也多了新生成的文件夾。

到此該問題解決,但其實不難發現,同一種錯誤的原因可能是多種多樣的,網上的也無法能解決你的問題,還是要自己去思考。

 參考文獻:

http://www.cnblogs.com/wangyuyu/p/3900098.html

http://jingyan.baidu.com/article/8cdccae963e442315413cd01.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM