我有一个使用 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 无法访问,我怀疑您的网络资源不在正确的文件夹中。
这个link可以帮助您更清楚地理解
关于java - 无法使 JAR/WAR 可执行文件与嵌入式 Tomcat 7 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57717711/