关于服务器上tomcat报Caused by: java.util.zip.ZipException: error in opening zip file的自我总结

关于服务器上tomcat报Caused by: java.util.zip.ZipException: error in opening zip file; org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]] Caused by: java.net.BindException: Address already in use异常的自我总结


Caused by: java.net.BindException: Address already in use异常的自我总结)

前提条件

首先要保证代码没有问题,就是项目能在本地tomcat可以启动,其次本地的jdk和tomcat版本要与服务器上面的对应,如果做不到tomcat对应,至少也要做到jdk大版本对应。

第一个坑

1.发布到阿里云服务器tomcat上的项目报404,有经验的工程师肯定会先去找日志(在你服务器tomcat/logs/catalina.out),然后就会发现报本篇博客标题上门的错。

2.最初也是自己把项目的war删了,重新再发布,但是无济于事。最后我发布到我服务器上另一个tomcat,发现竟然可以访问了。

3.解决方法清理服务器上tomcat的缓存
以下是从网上搜刮来着

进入tomcat/bin目录下,执行sh shutdown.sh命令关闭tomcat。
然后执行命令 ps -aux | grep tomcat 命令​,
查看tomcat命令是否真的关闭  
如果没有关闭执行 kill -9 #pid 来彻底关闭tomcat(#pid是tomcat的进程ID)
		ID
​root    17505    0.0        0.0    63344  768    pts/1    S+  10:22  0:00 grep tomcat​USER    	
4.最后进入tomcat/work目录下​,执行 rm -rf Catalina 来删除缓存文件
5.执行ls ​确认是否删除,如果work目录下没有Catalina文件夹说明删除成功。
6.在进入tomcat/bin目录下,执行./startup.sh命令来重启tomcat。

清理缓存后,重新发布项目到tomcat就可以访问了。
如果对服务器配置不清楚的同学,可以在更换阿里云镜像,在镜像市场选择java镜像,jdk+mysql+tomcat都自动给配置好了,主要的优点还是免费。

第二个坑

1.日志jar包版本的问题
看你引用的log4j的版本,如果是1.X版本,那你需要配置log4j.properties文件。

如果你的log4j版本是2.X版本,那你需要配置log4j2.xml。
解决方法
log4j版本与配置文件对应不了的话,本地运行项目控制台也会报错,但你的程序仍然可以运行,细心的朋友可以看一下会报个error,但还是可以运行。
如果放到服务器上面,那就不怎么happy,也将会报博客标题的错误。

方便大家改错。我就把这两个配置文件放到这里了,
log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
  <Configuration status="WARN">  
    <Appenders>  
        <Console name="Console" target="SYSTEM_OUT">  
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />  
        </Console>  
    </Appenders>  
    <Loggers>  
        <Root level="error">  
            <AppenderRef ref="Console" />  
        </Root>  
    </Loggers>  
</Configuration>  

总结

报这些错大多不是你代码的问题,还是要看配置文件是否配置对。总之,遇错一定要冷静,不然,依你暴躁的心情,上帝怎么可能让你很快将bug改掉。
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值