Приложение Spring запускает работу в intellij, но java -jar этого не делает - PullRequest
0 голосов
/ 09 апреля 2019

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

org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка создания бина с именем org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration ': неудовлетворенная зависимость, выраженная через параметр конструктора 0; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем 'dataSource', определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / jdbc / DataSourceConfiguration $ Hikari.class]: сбой создания экземпляра компонента с помощью метода фабрики ; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [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 com.example MyApp 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>

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

Ответы [ 3 ]

0 голосов
/ 09 апреля 2019

Используйте mvn package команды сборки, он создаст jar с зависимостями и использует этот jar

0 голосов
/ 09 апреля 2019

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

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

@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;
}    

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

0 голосов
/ 09 апреля 2019

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

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