我有一个使用tomcat7-maven-plugin的Maven项目。我试图将项目打包到一个jar(或war)中,以便可以在不使用maven(mvn tomcat7:run)的情况下运行它。到目前为止,我的尝试尚未导致正确显示网页。

我已按照https://www.baeldung.com/executable-jar-with-maven(2.6:具有可执行Tomcat的Web应用程序)中的步骤进行操作。此外,还遵循了https://searchapparchitecture.techtarget.com/video/Create-a-Java-executable-JAR-with-the-Tomcat-plug-in-for-Maven上的视频教程。已经尝试了其中的几种变体,更改了pom.xml参数。 pom.xml的示例为here

每次都使用命令mvn clean install tomcat7:exec-war-only构建档案,然后在目标目录中创建.jar或.war档案。

创建后,实现由java -jar Application.jar运行。观察到以下输出:

INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 29, 2019 9:58:58 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Aug 29, 2019 9:58:58 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
Aug 29, 2019 9:58:58 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]


导航到任何地址(例如http://localhost:8080/Application/home)时,我会收到404错误页面(不是Tomcat服务,而是Chrome的错误页面)。通过mvn tomcat7:run运行同一应用程序时,页面将按预期加载。

有人可以建议吗?

最佳答案

根据包装(.jar.war),您的网页资源(html / css / js文件)必须位于不同的位置。而且我猜您的URI称为index.html页面?


对于.jar包装,将其放在src/main/resources文件夹中
对于.war包装,将其放在src/main/webapp文件夹中


就您而言,您的URL无法访问,我怀疑您的Web资源不在好文件夹中。

link可以帮助您更清楚地了解

10-05 18:12