一般將war包放在tomcat下面,啟動后會解壓出一個文件夾,即war包里面的內(nèi)容,
今天遇到一個問題,啟動的時候不能正常的解壓,并且會報錯
具體的報錯文本如下
09-May-2022 15:30:53.351 嚴(yán)重 [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)
原本以為是開發(fā)平臺打出來的包有問題
因為本地打包出來的war,啟動是可以正常解壓的。
對war包執(zhí)行命令后發(fā)現(xiàn)了問題
問題定位:
命令行執(zhí)行命令jar -xvf xxx.war在解壓過程中出現(xiàn)報錯

image.png
其實(shí)就是war包中的中文

a7fd757f916193cd00ec0bace62a3da.png
在打包的時候
本地打出來的包中文是正常的,而開發(fā)平臺打出來的包是中文亂碼的,所以導(dǎo)致了上面的問題。將中文改成英文以后問題解決