java - 无法在tomcat上部署spring boot app
问题描述
我试图在tomcat服务器上部署spring boot微服务,但无法得到任何响应。url 显示 404 错误,然后我决定从非常基本的开始,所以我使用Spring Boot Initializer创建了一个简单的 Spring Boot 项目。我在那里选择
- 战争作为包装。
- java 版本 16(因为我的机器上只有这个)。
- 添加了 Spring Web 依赖项。
有了这个设置,spring 初始化程序会自动添加必要的东西,比如war packaging
, tomcat dependency
,spring web dependency
并且还ServletInitializer
为我创建了类。之后,我打开下载项目netbeans 12
并进行了一些更改,即
- 在
pom.xml
文件中添加了带有<start-class>
标签的主类和带注释的主类,@RestController
并暴露了 1 个返回简单字符串的端点。 - 然后,我从项目的主文件夹中运行了该命令,
mvn package
也尝试mvn clean install
使用第一个命令进行部署不成功。
这是我的配置
环境变量:
系统变量
- 卡特琳娜家:
D:\Inzimam Tariq\apache-tomcat-10.0.10
。 - JAVA_HOME:
C:\Program Files\Java\jdk-16.0.2
- 路径变量中的相关值:
C:\Program Files\Common Files\Oracle\Java\javapath
、D:\Inzimam Tariq\apache-maven-3.8.2\bin
和C:\Program Files\Java\jdk-16.0.2\bin
。
用户变量
- MAVEN_HOME
D:\Inzimam Tariq\apache-maven-3.8.2\bin
:。
我正在使用 Windows 10 64 位。Tomcat 管理器将应用程序显示为已部署,但是当我单击它时,它会显示404
. 我的 JDK 文件夹没有显示 JRE 文件夹,所以我在互联网上搜索,发现 Java 现在不包含 JRE。我还尝试将我的war文件重命名为项目名称,因为一些文章建议即abc.war
从abc-0.0.1-SNAPSHOT
但仍然错误是相同的。
请有人能指出我正确的方向吗?问候
解决方案
在 Tomcat 中部署您的项目 war 文件后,尝试在您的 POM.xml 文件中进行以下更改。然后重启你的tomcat。可能它会起作用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
推荐阅读
- datastax - 在datastax cassandra 5.1中,为什么dsetool缺少insights_config命令?
- graphviz - 如何在本地为子图设置节点?
- kotlin - 如何使用 Kotlin 和 Arrow 执行程序
- python - 在 python 中使用 sqlalchemy.select() 从 Postgresq 数据库中获取数据
- bash - 设置多个变量以在条件语句中调用
- swift - 如何在 swift 中使用 alamofire 发布字典数组?
- ruby-on-rails - rswag rails gem,无法识别我创建 swagger.yml 的模式
- javascript - 以角度将文件附加到FormData后无法上传文件
- javascript - FullCalendar v4.2.0 destroy() 不工作
- swift - 从 Swift 中的格式化字符串中提取货币值