Исключение из файла загрузки Spring при запуске более одного загрузочного проекта Spring - PullRequest
0 голосов
/ 28 мая 2018

У меня очень странная проблема.Когда я создаю файл war с помощью Spring Tools Suit и внедряю его в Tomcat, все работает нормально.Но если я разверну другой военный файл Spring Boot (другой загрузочный проект Spring), то последний из них выдаст исключения.Но до тех пор, пока загружен только один из них, они оба будут работать без исключений.

Ниже приведены исключения, которые я получаю из одного из военных файлов.Это происходит, только если у меня развернут другой файл войны на Tomcat, сгенерированные журналы слишком длинные, чтобы публиковать их здесь, поэтому я разместил их здесь

https://pastebin.com/6rnAsWT8

Ниже приведена информация о сервере

root@localhost:/usr/share/tomcat8/bin# ./version.sh 
Using CATALINA_BASE:   /usr/share/tomcat8
Using CATALINA_HOME:   /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.14 (Debian)
Server built:   Sep 3 2017 17:51:58 UTC
Server number:  8.5.14.0
OS Name:        Linux
OS Version:     4.9.0-6-amd64
Architecture:   amd64
JVM Version:    1.8.0_171-8u171-b11-1~deb9u1-b11
JVM Vendor:     Oracle Corporation

Ниже приведен 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.imageapi</groupId>
    <artifactId>ImageAPI</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.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-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <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>
        </dependency>

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


        <!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </dependency>

    </dependencies>

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


</project>

А ниже приведены изменения, которые я внес в проект для работы в качестве файла войны при загрузке в Tomcat

@SpringBootApplication
public class ImageApiApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ImageApiApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(ImageApiApplication.class, args);
    }
}

Myapplication.properties

spring.datasource.url=jdbc:postgresql://serverup:5432/mydb
spring.datasource.username=mydb
spring.datasource.password=mypass
spring.jpa.generate-ddl=true

spring.security.user.name=myusername
spring.security.user.password=mypass

spring.thymeleaf.cache=false

spring.application.name=imageapi

В чем здесь проблема?

1 Ответ

0 голосов
/ 28 мая 2018

Вы получаете исключение JMX InstanceAlreadyExists.Укажите уникальные значения для следующих свойств в каждом приложении

          spring.application.name
          spring.jmx.default-domain

Надеюсь, это поможет.

...