Приложение Spring работает в intellij, но java -jar не работает

Я создаю приложение restfull spring с базой данных mySQL. MyApp хорошо работает в Intellij, я создаю банку с артефактами сборки в Intellij. Когда я запускаю банку (java -jar), я получаю сообщение об ошибке.

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]:

вот мое приложение.свойства

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/TestApp?useSSL=false
spring.datasource.username=root
spring.datasource.password=password

вот мой pom.xml

<?xml version = "1.0" encoding = "UTF-8"?>

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 ком.пример Мое приложение 1.0-СНИМОК банка

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>fluent-hc</artifactId>
        <version>4.5.8</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

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

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Кто-нибудь может помочь? Спасибо

Как вы построили банку? Команда сборки Mvn?

sankar 09.04.2019 17:41

@sankar создает артефакты в Intellij

wanz 09.04.2019 17:45

«mvn clean build» попробуйте это в окне терминала. он создаст банку с зависимостями и будет использовать эту банку

sankar 09.04.2019 17:47

Пакет mvn - правильная команда для весенней загрузки, попробуйте это на своем терминале

sankar 09.04.2019 17:56

Ошибка сборки @sankar, «не могу найти пакет» из внешней банки (я поместил их в каталог lib)

wanz 09.04.2019 18:03

вам не нужно помещать это в lib, обычно mvn делает это за вас. Он будет выбирать из глобальных репозиториев. Можете ли вы опубликовать команду, которую вы использовали, и полный журнал.

sankar 09.04.2019 18:11

вы пробовали mvn spring-boot:run

Mehdi Benmesssaoud 09.04.2019 18:15

@MehdiBenmesssaoud я пытался. Он работает хорошо

wanz 09.04.2019 18:49

@sankar я удалил все jar в lib и повторно загрузил из глобального репозитория. Результат такой же

wanz 09.04.2019 19:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
9
269
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это предполагает, что у вас нет всех зависимостей в банке. Вы используете правильную банку - у вас может быть более одной - одна с приложением и одна из загрузки в другом каталоге. Было бы неплохо увидеть команду, которую вы также используете для сборки.

Ответ принят как подходящий

Моя банка работает хорошо, после того как я выбрал ручную настройку подключения к базе данных

добавить в класс приложения

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})

а потом Создайте

@Configuration
@PropertySource({ "classpath:app.datasource.properties" })
class DatabaseConfig {
@Autowired
private Environment env;

@Bean
@Primary
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName(env.getProperty("app.datasource.driverClassName"));
    dataSource.setUrl(env.getProperty("app.datasource.url"));
    dataSource.setUsername(env.getProperty("app.datasource.username"));
    dataSource.setPassword(env.getProperty("app.datasource.password"));

    return dataSource;
}    

я не знаю, почему моя банка не может получить автоконфигурацию с весны, может быть, кто-то может объяснить в комментариях ниже

Другие вопросы по теме