我已将.war复制到我本地tomcat服务器的webapps文件夹中 . 当我启动tomcat时,.war会爆炸到与我用jar -xf手动爆炸时不同的结构 . 当我手动爆炸.war时,我将WEB-INF文件夹作为app文件夹的子项(如下) . 这就是我要的 .
两次启动都很好,但是当tomcat爆炸我的战争时,发送资源请求总是返回404.我认为WEB-INF需要成为爆炸的war目录的子项,以便返回200.请求在webapps中手动爆炸.war然后运行tomcat工作并在自动爆炸战争后停止tomcat,将WEB-INF向上移动一级,然后重启tomcat也可以工作 .
有没有办法打包我的战争,以便tomcat将爆炸与WEB-INF作为爆炸的战争目录的直接孩子?为什么tomcat爆炸战争与jar -xf不同?
TOMCAT
exploded_war
├── app_name
│ └── WEB-INF
│ ├── classes
│ │ └── ...
│ ├── servlet.xml
│ ├── lib
│ │ ├── ...
│ └── web.xml
└── META-INF
└── ...
手册
exploded_war
└── WEB-INF
├── classes
│ └── ...
├── servlet.xml
├── lib
│ ├── ...
└── web.xml
编辑 - 这是我在项目文件夹中执行的构建脚本 -
mvn package
cp src/WEB-INF/*.xml /target/app_name/WEB-INF
cd target
jar -cvf app_name.war app_name/WEB-INF
cp app_name.war {path_to}/apache-tomcat-8.5.13/webapps
1 回答
您的WAR文件结构不正确 . WAR文件的根目录不得包含应用程序名称文件夹 . 您需要从jar命令中删除app_name文件夹 .
请参阅以下屏幕截图,例如: