一般将war包放在tomcat下面,启动后会解压出一个文件夹,即war包里面的内容,
今天遇到一个问题,启动的时候不能正常的解压,并且会报错
具体的报错文本如下
09-May-2022 15:30:53.351 严重 [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/DhStationViewWeb]
java.io.IOException: Invalid argument
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
at java.io.File.getCanonicalPath(File.java:618)
at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:137)
at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:609)
at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:742)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:149)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
原本以为是开发平台打出来的包有问题
因为本地打包出来的war,启动是可以正常解压的。
对war包执行命令后发现了问题
问题定位:
命令行执行命令jar -xvf xxx.war
在解压过程中出现报错
其实就是war包中的中文
a7fd757f916193cd00ec0bace62a3da.png
在打包的时候
本地打出来的包中文是正常的,而开发平台打出来的包是中文乱码的,所以导致了上面的问题。将中文改成英文以后问题解决
网友评论