项目在 idea 里运行一切都正常,唯独打包之后启动 Tomcat 就会报错,比如说修改用户信息,点击修改就提示 404,页面不存在,检查之后路径都是正常的,放在服务器上也是这个问题,回头去排查发现 package 时的测试报错,改正之后问题依旧,请带哥帮我看下是不是 pom 里面的配置问题
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.2.1.RELEASE</version> <relativepath> </relativepath></parent> <groupid>com.sw</groupid> <artifactid>yundcc</artifactid> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>yundcc</name> <description>Demo project for Spring Boot</description></project>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 添加 servlet 依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- 添加 jstl 标签库依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- 使用 jsp 引擎,springboot 内置 tomcat 没有此依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
1
Suaxi OP 忘了说数据库连接都没问题,唯独打包之后运行就会报 404
|
2
CoderGeek 2019-11-18 22:58:23 +08:00
<scope>provided</scope>
|
3
yejianmail 2019-11-18 23:01:58 +08:00 via Android
你是怎么部署的,打成 jar 直接执行,还是打成 war 包,放 tomcat 里执行的,依据经验需要在 pom 里指明 jsp 路径路径打包到指定路径下,手机回复不是很方便去翻项目,见谅
|
4
Suaxi OP @yejianmail war 包,好的,谢谢
|
5
IamNotShady 2019-11-18 23:23:24 +08:00
springboot 集成 JSP 有坑 官方文档上写的不支持 但是也可以集成 之前搞过一次 不着急明天找下之前的项目给你看看
|
6
IamNotShady 2019-11-18 23:24:30 +08:00
我记得之前集成放到 tomcat 也是有问题 最后用的是它内嵌的 tomcat
|
7
Suaxi OP @IamNotShady 好多,谢谢哈,下午的时候去找专业课老师,给他头都搞大了也没弄好😂
|
8
Suaxi OP @CoderGeek 加了这个还是一样的问题,下面有个老哥说是 springboot 集成 jsp 的问题,明天再看看
|
9
zzxCNCZ 2019-11-19 08:58:46 +08:00
在 idea 里是用内置的,你直接用 jar 运行试试,看能不能运行
|
10
Suaxi OP @zzxCNCZ jar 还没试,war 包能正常运行,但是 404 的时候 tomcat 里没有报错信息;现在找到了问题是添加的 tomcat 依赖下面的<scope>要注释掉,同时也把 model 的路径改到了 webapp/WEB-INF/jsp 下,但还是同样的问题,不知道应该怎么改了
|
11
w292614191 2019-11-19 15:59:49 +08:00
我之前也钟情 war 包,然后 Tomcat 发布,然后各种疑难杂症,也是脑壳痛,放弃之。
server.servlet.context-path=xxx 这个配置有吗? |
12
Suaxi OP @w292614191 没加这个,用了 jsp 标签、项目全路径引用${ctx}解决了
|
13
jack80342 2019-11-23 14:14:09 +08:00
这是我翻译的《 Spring Boot 参考指南》,你可以看看
|
14
jack80342 2019-11-23 14:14:39 +08:00 1
忘记发链接了😓,这是链接:github.com/jack80342/Spring-Boot-Reference-Guide
|