После развертывания файла войны в Tomcat API не работает - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь развернуть приложение в своем локальном коте, но у меня есть некоторые проблемы. Я использую: Tomcat 9, Spring boot, ReactJS и Webpack. Когда я запускаю встроенный Tomcat (в Eclipse), все будет в порядке - API работает хорошо, но когда я собираю файл war и вставляю его в мой локальный Tomcat - API не работает, все запросы не выполняются.

enter image description here

Как создать файл войны:

Как я могу изменить этот путь?

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>

1 Ответ

0 голосов
/ 22 января 2019

Когда вы запускаете приложение из Eclipse, оно использует автономный сервер, к которому есть прямой доступ через localhost, а URL-адрес - http://localhost:8080/api/originator.

Когда вы запускаете локальный экземпляр tomcat, http://localhost:8080 является базовым URL-адресом tomcat. Далее следует название вашей заявки, в данном случае web_importer . Таким образом, URL становится http://localhost:8080/web_importer/api/originator, и поэтому вы получаете 404 Not Found.

Похоже, что ваш веб-интерфейс вызывает API напрямую по адресу http://localhost:8080/api/originator. Вам нужно изменить базовый URL-адрес API в конфигурации веб-интерфейса, если вы хотите использовать развернутую tomcat версию вашего API.

...