Я создаю приложение 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>
Кто-нибудь может помочь? Спасибо
@sankar создает артефакты в Intellij
«mvn clean build» попробуйте это в окне терминала. он создаст банку с зависимостями и будет использовать эту банку
Пакет mvn - правильная команда для весенней загрузки, попробуйте это на своем терминале
Ошибка сборки @sankar, «не могу найти пакет» из внешней банки (я поместил их в каталог lib)
вам не нужно помещать это в lib, обычно mvn делает это за вас. Он будет выбирать из глобальных репозиториев. Можете ли вы опубликовать команду, которую вы использовали, и полный журнал.
вы пробовали mvn spring-boot:run
@MehdiBenmesssaoud я пытался. Он работает хорошо
@sankar я удалил все jar в lib и повторно загрузил из глобального репозитория. Результат такой же
Это предполагает, что у вас нет всех зависимостей в банке. Вы используете правильную банку - у вас может быть более одной - одна с приложением и одна из загрузки в другом каталоге. Было бы неплохо увидеть команду, которую вы также используете для сборки.
Моя банка работает хорошо, после того как я выбрал ручную настройку подключения к базе данных
добавить в класс приложения
@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;
}
я не знаю, почему моя банка не может получить автоконфигурацию с весны, может быть, кто-то может объяснить в комментариях ниже
Как вы построили банку? Команда сборки Mvn?