Разница между развертыванием JAR на сервере Tomcat или выполнением java -jar - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть POM -файл, который генерирует JAR -файл для меня.Я хотел протестировать приложение и поэтому запустил java -jar file, который, кажется, запускает tomcat-сервер в фоновом режиме.Теперь я попытался просто переместить jar -файл в мой tomcat/webapps -каталог.При доступе к http://localhost:8080 я просто получаю начальную страницу tomcat по умолчанию.Есть ли разница между перемещением JAR -файла в этот каталог и запуском tomcat вручную по сравнению с использованием java -jar file?

Редактировать: Некоторые пояснения: я использую Spring-Загрузочное приложение с Angular.

My POM.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>name</name>
    <description>description</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.restdocs</groupId>
            <artifactId>spring-restdocs-mockmvc</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Но команда java -jar не запускает ни один встроенный сервер приложений по умолчанию.Команда только запускает процесс JVM, который выполняет основной класс jar.Причина, по которой java -jar запускает сервер приложений в вашем случае, заключается в том, что у вас есть зависимость от spring-boot-starter-web, который содержит встроенный сервер Tomcat.Это поведение Spring Boot по умолчанию (вы также можете использовать свою собственную AS, исключая встроенную AS).

0 голосов
/ 30 ноября 2018

Это очень мало информации.Однако, судя по тому факту, что простой запуск jar с помощью java -jar, похоже, работает, ваше приложение, безусловно, уже имеет некоторый встроенный сервер приложений, такой как Tomcat.

Также вы не сможетепросто разверните файл JAR на Tomcat, как это.Вы должны сначала упаковать свое приложение как WAR-файл , чтобы развернуть его.При построении WAR убедитесь, что ваше приложение не предоставляет встроенный сервер приложений, так как оно, вероятно, будет мешать Tomcat, на который вы пытаетесь развернуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...