Springboot 问题请教

2019-11-18 22:50:51 +08:00
 Suaxi

项目在 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>
3583 次点击
所在节点    Java
15 条回复
Suaxi
2019-11-18 22:56:30 +08:00
忘了说数据库连接都没问题,唯独打包之后运行就会报 404
CoderGeek
2019-11-18 22:58:23 +08:00
<scope>provided</scope>
yejianmail
2019-11-18 23:01:58 +08:00
你是怎么部署的,打成 jar 直接执行,还是打成 war 包,放 tomcat 里执行的,依据经验需要在 pom 里指明 jsp 路径路径打包到指定路径下,手机回复不是很方便去翻项目,见谅
Suaxi
2019-11-18 23:09:26 +08:00
@yejianmail war 包,好的,谢谢
IamNotShady
2019-11-18 23:23:24 +08:00
springboot 集成 JSP 有坑 官方文档上写的不支持 但是也可以集成 之前搞过一次 不着急明天找下之前的项目给你看看
IamNotShady
2019-11-18 23:24:30 +08:00
我记得之前集成放到 tomcat 也是有问题 最后用的是它内嵌的 tomcat
Suaxi
2019-11-18 23:36:51 +08:00
@IamNotShady 好多,谢谢哈,下午的时候去找专业课老师,给他头都搞大了也没弄好😂
Suaxi
2019-11-18 23:40:47 +08:00
@CoderGeek 加了这个还是一样的问题,下面有个老哥说是 springboot 集成 jsp 的问题,明天再看看
zzxCNCZ
2019-11-19 08:58:46 +08:00
在 idea 里是用内置的,你直接用 jar 运行试试,看能不能运行
Suaxi
2019-11-19 13:15:29 +08:00
@zzxCNCZ jar 还没试,war 包能正常运行,但是 404 的时候 tomcat 里没有报错信息;现在找到了问题是添加的 tomcat 依赖下面的<scope>要注释掉,同时也把 model 的路径改到了 webapp/WEB-INF/jsp 下,但还是同样的问题,不知道应该怎么改了
w292614191
2019-11-19 15:59:49 +08:00
我之前也钟情 war 包,然后 Tomcat 发布,然后各种疑难杂症,也是脑壳痛,放弃之。
server.servlet.context-path=xxx
这个配置有吗?
Suaxi
2019-11-19 18:53:56 +08:00
@w292614191 没加这个,用了 jsp 标签、项目全路径引用${ctx}解决了
jack80342
2019-11-23 14:14:09 +08:00
这是我翻译的《 Spring Boot 参考指南》,你可以看看
jack80342
2019-11-23 14:14:39 +08:00
忘记发链接了😓,这是链接:github.com/jack80342/Spring-Boot-Reference-Guide
Suaxi
2019-11-25 12:56:54 +08:00
@jack80342 感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/620837

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX