【问题标题】:After deploying war file in Tomcat api not working在Tomcat api中部署war文件后不起作用
【发布时间】:2019-06-15 22:17:19
【问题描述】:

我正在尝试在本地 tomcat 中部署应用程序,但遇到了一些问题。我使用:Tomcat 9、Spring boot、ReactJS 和 Webpack。当我运行嵌入式 Tomcat(在 Eclipse 中)时一切正常 - API 运行良好,但是当我构建 war 文件并将其粘贴到本地 Tomcat 时 - API 不工作,所有请求都失败了。

我如何构建战争文件:

我怎样才能改变这条路?

application.properties:

server.port = 8080
management.server.port: 8995
management.server.address: 127.0.0.1
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=100MB
spring.http.encoding.force=true

OriginatorController.java:

@RequestMapping(value = "/api/originator", method = RequestMethod.GET)
public List<OriginatorModel> retrieveOriginators() {
    logger.info("Performing /api/originator GET request");
    return originatorService.retrieveOriginators();
}

我的 pom.xml:

    <groupId>com.kddb_web_importer</groupId>
    <artifactId>web_importer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>web_importer</name>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>   
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>           
        </dependency>           
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
        </dependency>         
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>            
        </plugins>
    </build>

【问题讨论】:

标签: java reactjs spring-boot tomcat war


【解决方案1】:

当您从 Eclipse 启动应用程序时,它使用独立服务器,通过 localhost 直接访问,URL 为 http://localhost:8080/api/originator

当您运行本地 tomcat 实例时,http://localhost:8080 是基本 tomcat URL。接下来是您的应用程序的名称,在本例中为 web_importer。所以 URL 变成了http://localhost:8080/web_importer/api/originator,这就是你得到 404 Not Found 的原因。

您的前端似乎直接在http://localhost:8080/api/originator 调用API。当您想要使用您的 API 的 tomcat 部署版本时,您需要在前端配置中更改您的基本 API URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2014-04-19
    • 2017-11-08
    • 2020-12-03
    • 1970-01-01
    • 2010-09-13
    • 2012-07-29
    相关资源
    最近更新 更多