• 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

  • 相关阅读:
    php——验证身份证是否合法的函数
    php——离线执行任务
    代码整洁之道
    js自适应屏幕高度
    SSH Junit4测试
    Java Persistence with Hibernate
    SSH搭建
    js整理
    Hibernate 应用
    对学习的一点感想
  • 原文地址:https://www.cnblogs.com/fxl-njfu/p/7511764.html
Copyright © 2020-2023  润新知