Spring boot не запускается из командной строки с параметром -jar - PullRequest
0 голосов
/ 23 апреля 2020

Я пытался искать в Интернете и специально переполнять стек, но я не нашел решения. Извиняюсь, если я спрашиваю это снова.

У меня есть приложение весенней загрузки, которое подключается к двум базам данных и выполняет некоторую обработку записей, читая из одной базы данных и записывая в другую базу данных. Действие запускается пользователем через веб-интерфейс. Он работает нормально, когда я запускаю его через eclipse run как приложение с загрузкой весной. Это даже работает, когда я запускаю из командной строки, используя

mvn clean spring-boot:run

Но почему-то происходит сбой приложения при запуске, когда я запускаю его через

java -jar target\myproject.war

Упаковка - это война в pom-файле.

Точное сообщение об ошибке при использовании java -jar

Field targetRepo in <basepacakge>.repo.DbDao required a bean of type '<basepacakge>.repo.target.TargetRepo' that could not be found.

The injection point has the following annotations:
        - @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type '<basepacakge>.repo.target.TargetRepo' in your configuration.

Для предоставления моего пакета и структуры репозитория

Базовое приложение находится в basepacakge. Исходное хранилище - basepacakge.repo.sr c .SrcRepo, а целевое хранилище - basepacakge.repo.targetRepo.

Пытался сравнить журнал обоих запусков из eclipse и java -jar, но ничего не указывает до root причина. Любая помощь, как его отладить?

Обновление: 1

Это связано с этой настройкой. У меня есть класс DbRepo как @Component, который имеет атрибут srcRepo с @Autowired. Класс SrcRepo с аннотацией @Repository. Похоже, в случае java -jar пружина инициализирует DbRepo без предварительной инициализации srcRepo. Я что-то упускаю здесь очевидное?

Обновление: 2

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>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
    <relativePath />
</parent>

<groupId>*******</groupId>
<artifactId>*******</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

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

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    .......
</dependencies>

<scm>
    <developerConnection>*******</developerConnection>
</scm>

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

<repositories>
    <repository>
        ......
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        ........
    </pluginRepository>
</pluginRepositories>

Обновление: 3

В этом разница между рабочим и нерабочим java -jar

Не рабочая

@Component
public class DbDao {

@Autowired
 SrcRepo srcRepo;
}

рабочая

@Component
public class DbDao {

SrcRepo srcRepo;

public DbDao(SrcRepo srcRepo) {
    super();
    this.srcRepo = srcRepo;
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...