【tomcat部署前台war包报错】

【tomcat部署前台war包报错】 tomcat部署前台war包报错背景tomcat启动前台war包由zip直接改文件后缀成war包jdk8 同事好使我不好使部署平台日志报错一、正常tomcat执行时会把war包解压成对应文件夹这里应该是没解压成功。没有具体报错SEVERE:ContainerBase.addChild:start:LifecycleException:Errorinitializaing:java.lang.NullPointerExceptionatorg.apache.catalina.core.StandardContext.start(StandardContext.java:4451)atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)atorg.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)atorg.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)atorg.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)atorg.apache.catalina.startup.HostConfig.check(HostConfig.java:1385)atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)atorg.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)atorg.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)atorg.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)atorg.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)atjava.lang.Thread.run(Thread.java:662)May20,20265:27:15PMorg.apache.catalina.startup.HostConfigdeployWARSEVERE:Errordeploying web application archive integratebusi-ui.warjava.lang.IllegalStateException:ContainerBase.addChild:start:LifecycleException:Errorinitializaing:java.lang.NullPointerExceptionatorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:803)atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)atorg.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)atorg.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)atorg.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)atorg.apache.catalina.startup.HostConfig.check(HostConfig.java:1385)atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)atorg.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)atorg.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)atorg.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)atorg.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)atjava.lang.Thread.run(Thread.java:662)本地部署日志报错二、本地安装启动tomcat启动时报错意思就是war包有中文、特殊字符Causedby:java.lang.IllegalArgumentException:MALFORMED调试过程本地安装tomcat放入war包启动报错放入文件夹可以访问定位问题是war包解压成文件夹期间出现问题怀疑过压缩时文件损害不过单独文件夹好用并且使用7-zip操作正常最后通过报错二排查删除包中中文文件解决根本问题字符集问题部署平台jdk是88只支持DOS/GBK而我们直接改后缀字符集是utf-8因此读取报错前台zip转换成war包最靠谱方法cd distjar -cvfM dist.zipren dist.zip dist-ui.war