关于如何将我的spring boot web应用部署到tomcat8的一个问题

Posted

技术标签:

【中文标题】关于如何将我的spring boot web应用部署到tomcat8的一个问题【英文标题】:A question about how to deploy my sprinboot web application to tomcat8 【发布时间】:2019-03-26 02:48:30 【问题描述】:

我用java-jar启动jar包时访问JSP文件有问题,但是用IDE IDEA在本地启动springboot项目时,无法访问JSP文件,为什么? tomcat8,也无法访问。

抱歉,我更新到I have an problem about how to run a springboot project。

【问题讨论】:

向我糟糕的英语道歉。 很难理解你的查询...访问文件意味着什么? @this_is_om_vm 在 chrome 中只有 404 显然你想要什么?你想让你的jsp直接在浏览器中加载吗? 【参考方案1】:

在 tomcat 中部署 spring boot 应用程序(这里你需要注意 spring boot 演变使用嵌入式 tomcat)所以你不需要手动将 jar 放在任何 tomcat 文件夹中。最好的方法是运行下面的 maven 命令。

mvn 清洁包

当它成功执行 maven 命令时,它将在您的 webapp 中创建一个目标文件夹,您将在目标文件夹中获得一个 jar 文件。

现在只有你想使用命令提示符运行你的 jar

java -jar namefJar.jar

现在您将看到您的 Spring Boot 应用程序运行良好。

【讨论】:

tomcat和“java -jar xx.jar”有什么区别 如果你正在运行你的web应用程序,spring boot默认支持在嵌入式tomcat中隐式部署jar。 我使用 ClassLoader.getSystemResource("").getPath() 来获取资源路径,如果我使用 IDEA 并运行,它可以工作,但如果我使用 java -jar,它不起作用抛出NPE 我要获取资源路径下的excel文件 你能用你的代码更新你的问题吗?你真正想要实现的目标是无法理解的。【参考方案2】:

一旦我遇到类似的问题,当我添加以下依赖项时,它就得到了修复。

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

【讨论】:

我使用 provided 但它不起作用,为什么?

以上是关于关于如何将我的spring boot web应用部署到tomcat8的一个问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在不杀死 /health 的情况下将我的 Spring Boot 应用程序默认为 application/xml?

我应该将我的 XML bean 放在 Spring Boot 应用程序中的啥位置?

关于spring boot如何正确禁用web环境

我正在尝试将我的本地 spring boot 应用程序连接到我的 heroku postgres db

Spring Boot 静态资源

无法将我的spring-boot应用程序与mongodb云图集连接起来