Ini adalah kesalahan yang dilemparkan ketika mencoba menjalankan aplikasi web saya:
[INFO] WARNING: Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public javax.sql.DataSource org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource()] threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.:
[INFO] org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.
[INFO] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.getDriverClassName(DataSourceProperties.java:91)
[INFO] at org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource(DataSourceAutoConfiguration.java:100)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke(Method.java:606)
[INFO] at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
[INFO] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
[INFO] at org.springframework.beans.factory.support.ConstructorResolver$3.run(ConstructorResolver.java:580)
[INFO] at java.security.AccessController.doPrivileged(Native Method)
[INFO] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:577)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
[INFO] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
[INFO] at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1017)
[INFO] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960)
[INFO] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:858)
[INFO] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480)
[INFO] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
[INFO] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
[INFO] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
[INFO] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:370)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1094)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:989)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
[INFO] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
[INFO] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
[INFO] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
[INFO] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:973)
[INFO] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:750)
[INFO] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
[INFO] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:683)
[INFO] at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)
[INFO] at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142)
[INFO] at org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener.initWebApplicationContext(SpringBootContextLoaderListener.java:60)
[INFO] at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
[INFO] at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
[INFO] at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
[INFO] at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
[INFO] at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
[INFO] at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
[INFO] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
[INFO] at org.mortbay.jetty.Server.doStart(Server.java:224)
[INFO] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
[INFO] at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:249)
[INFO] at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:306)
[INFO] at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
[INFO] at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:79)
[INFO] at com.google.appengine.tools.development.Modules.startup(Modules.java:88)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:254)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:212)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:210)
[INFO] at java.security.AccessController.doPrivileged(Native Method)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:210)
[INFO] at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:277)
[INFO] at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
[INFO] at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:219)
[INFO] at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:210)
Saya yakin saya memiliki kombinasi datanucleus-appengine
dan datanucleus
toples yang tepat:
2.1: Memerlukan DataNucleus 3.1.x (inti, api-jdo, api-jpa, penambah). Membutuhkan SDK 1.6.4+ Perhatikan bahwa rilis Datanucleus ini tidak lagi didukung oleh proyek DataNucleus
Konfigurasi Aplikasi JPA:
@Configuration
@EnableJpaRepositories("demo.core.entity")
@EnableTransactionManagement
class JpaApplicationConfig {
private static final Logger logger = Logger
.getLogger(JpaApplicationConfig.class.getName());
@Bean
public AbstractEntityManagerFactoryBean entityManagerFactory() {
logger.info("Loading Entity Manager...");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("transactions-optional");
return factory;
}
@Bean
public PlatformTransactionManager transactionManager() {
logger.info("Loading Transaction Manager...");
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory().getObject());
return txManager;
}
@Bean
public PersistenceExceptionTranslator persistenceExceptionTranslator() {
return new OpenJpaDialect();
}
}
Application.java
@Configuration
@ComponentScan
@EnableAutoConfiguration
@RestController
public class Application {
private static final EntityManagerFactory INSTANCE =
Persistence.createEntityManagerFactory("transactions-optional");
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@RequestMapping("/")
public String home() {
return "Hello World";
}
}
POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="...">
<modelVersion>4.0.0</modelVersion>
<groupId>org.demohq</groupId>
<artifactId>demo-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>demo-boot</name>
<description>Demo project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.0.BUILD-SNAPSHOT</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-actuator</artifactId>
</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-legacy</artifactId>
<version>1.1.0.BUILD-SNAPSHOT</version>
</dependency>
<!--<dependency>-->
<!--<groupId>net.kindleit</groupId>-->
<!--<artifactId>gae-runtime</artifactId>-->
<!--<version>${gae.version}</version>-->
<!--<type>pom</type>-->
<!--<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-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<!--<dependency>-->
<!--<groupId>org.hsqldb</groupId>-->
<!--<artifactId>hsqldb</artifactId>-->
<!--<scope>runtime</scope>-->
<!--</dependency>-->
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-labs</artifactId>
<version>${gae.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-stubs</artifactId>
<version>${gae.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-testing</artifactId>
<version>${gae.version}</version>
<scope>test</scope>
</dependency>
<!-- DataNucleus -->
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jpa</artifactId>
<version>${datanucleus.jpa.version}</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>${datanucleus.jpa.version}</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-enhancer</artifactId>
<version>${datanucleus.jpa.version}</version>
</dependency>
<dependency>
<groupId>com.google.appengine.orm</groupId>
<artifactId>datanucleus-appengine</artifactId>
<version>${datanucleus.version}</version>
<!-- Need to exclude the enhancer since it interfere with the enhancer plugin. -->
<exclusions>
<exclusion>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-enhancer</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_2.0_spec</artifactId>
<version>1.1</version>
</dependency>
<!-- OpenJPA -->
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-persistence</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
<properties>
<start-class>demo.Application</start-class>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
<m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>
<datanucleus.jpa.version>3.1.1</datanucleus.jpa.version>
<datanucleus.version>2.1.2</datanucleus.version>
<gae.version>1.8.8</gae.version>
<gae.home>${settings.localRepository}/com/google/appengine/appengine-java-sdk/${gae.version}/appengine-java-sdk/appengine-java-sdk-${gae.version}</gae.home>
<gae.application.version>test</gae.application.version>
<!--<org.springframework-version>4.0.5.RELEASE</org.springframework-version>-->
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--
<plugin>
<groupId>net.kindleit</groupId>
<artifactId>maven-gae-plugin</artifactId>
<version>0.9.6</version>
<dependencies>
<dependency>
<groupId>net.kindleit</groupId>
<artifactId>gae-runtime</artifactId>
<version>${gae.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>
-->
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${gae.version}</version>
<configuration>
<enableJarClasses>false</enableJarClasses>
</configuration>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<goals>gae:deploy</goals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<path>/</path>
</configuration>
</plugin>
<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>maven-datanucleus-plugin</artifactId>
<version>${datanucleus.jpa.version}</version>
<configuration>
<api>JPA</api>
<!--<mappingIncludes>**/entity/*.class</mappingIncludes>-->
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>${datanucleus.jpa.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- We can configure our integration server to activate this profile and
perform gae:deploy, thus uploading latest snapshot to the http://1.latest.<applicationName>.appspot.com
automatically -->
<profile>
<id>integration-build</id>
<properties>
<gae.application.version>stage</gae.application.version>
</properties>
</profile>
<!-- This profile will activate automatically during release and upload
application to the http://2.latest.<applicationName>.appspot.com (We might
want to set the 2nd version as our applications Default version to be accessible
at http://<applicationName>.appspot.com) -->
<profile>
<id>release-build</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<properties>
<!-- During release, set application version in appengine-web.xml to
2 -->
<gae.application.version>release</gae.application.version>
</properties>
</profile>
</profiles>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>http://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>http://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
Saya bertanya-tanya apa yang bisa hilang di aplikasi saya? Saya mengikuti instruksi dari sini Menggunakan Spring Data JPA di Google Appengine
Jawaban:
Anda belum memberikan Spring Boot informasi yang cukup untuk mengonfigurasi a
DataSource
. Untuk melakukannya, Anda harus menambahkan beberapa propertiapplication.properties
denganspring.datasource
awalan. Lihatlah DataSourceProperties untuk melihat semua properti yang bisa Anda atur.Anda harus memberikan url dan nama kelas driver yang sesuai:
sumber
java -jar myJar.jar
itu memberi saya kesalahan yang sama.spring.datasource.url = … spring.datasource.driver-class-name = …
properti. Jadi saya menambahkan@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
di kelas utama saya. Tetapi setelah meletakkan ini sekarang saya mendapatkan kesalahanParameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type 'javax.sql.DataSource' that could not be found.
. Tolong bantu.Jika Anda ingin menggunakan database H2 tertanam dari boot Spring Boot tambahkan ketergantungan di bawah ini ke file pom Anda.
Tetapi seperti yang disebutkan dalam komentar, database H2 yang tertanam menyimpan data dalam memori dan tidak menyimpannya secara permanen.
sumber
Saya mengalami masalah yang sama dan tidak termasuk DataSourceAutoConfiguration memecahkan masalah.
sumber
application.properties
spring.main.web-environment=false
@EnableAutoConfiguration
di kelas non-SpringBootApplication, dan harus menambahkan pengecualian di sana juga. TBH, saya mungkin tidak perlu@EnableAutoConfiguration
ada di tempat pertama: /Ini bekerja untuk saya (1.3.0.M5):
Kecualikan kedua kelas.
Itu tidak bekerja dengan
sumber
Anda dapat menambahkan
ke
application.properties
file Anda .sumber
Sekarang saya melihat lebih dekat, saya pikir masalah DataSource adalah ikan merah. Konfigurasi otomatis Boot Hibernate sedang dipicu dan itulah yang menyebabkan DataSource diperlukan. Hibernate ada di classpath karena Anda punya ketergantungan
spring-boot-starter-data-jpa
yang menarikhibernate-entitymanager
.Perbarui
spring-boot-starter-data-jpa
ketergantungan Anda untuk mengecualikan Hibernate:sumber
Dari manual Spring .
Bagi saya meninggalkan dependensi spring-boot-starter-data-jpa dan hanya menggunakan dependensi spring-boot-starter-jdbc bekerja seperti pesona, selama saya memiliki h2 (atau hsqldb) dimasukkan sebagai dependensi.
sumber
Spring boot akan mencari properti data Anda di file application.properties.
Silakan tentukan di application.properties atau file yml
properti aplikasi
Jika Anda membutuhkan konfigurasi Anda sendiri, Anda dapat mengatur profil Anda sendiri dan menggunakan nilai sumber data saat membuat bean.
sumber
Saya tidak tahu kalau sudah terlambat untuk menjawab. Saya bisa mengatasi masalah ini dengan mengecualikan DataSourceAutoConfiguration dari spring boot.
sumber
Saya menghadapi pengecualian ini ketika saya sedang melakukan API untuk ElasticSearch menggunakan Spring Data. Saya melakukan yang berikut dan berhasil.
sumber
Saya memiliki dua dependensi dengan groupId dari org.springframework.data, kemudian saya menghapus jpa dan menyimpan mongodb saja, dan itu berhasil!
sumber
Saya memecahkan masalah saya hanya dengan menambahkan @AutoConfigureTestDatabase (ganti = Ganti.NONE)
sumber
Saya mendapat pesan kesalahan dalam judul dari
o.s.b.d.LoggingFailureAnalysisReporter
bersama dengan pesan "APLIKASI GAGAL UNTUK MULAI". Ternyata saya belum menambahkan-Dspring.profiles.active=dev
ke konfigurasi debug Eclipse saya jadi saya tidak punya profil aktif.sumber
Run -> Debug configurations... -> Maven build -> [build name] -> JRE -> VM arguments
)Saya juga menghadapi masalah yang sama.
Dalam kasus saya, menghapus file jar dari repositori yang sesuai dengan database memperbaiki masalah. Ada jar rusak hadir di repositori yang menyebabkan masalah.
sumber
Dalam kasus saya, saya meletakkan ketergantungan maven untuk org.jasig.cas di pom saya yang memicu ketergantungan hibernate dan yang menyebabkan Spring Boot mencari sumber data untuk mengkonfigurasi secara otomatis hibernate persistence. Saya memecahkannya dengan menambahkan ketergantungan maven com.h2database seperti yang disarankan oleh user672009. Terima kasih kawan!
sumber
Karena ini adalah salah satu topik pertama yang dikembalikan di google untuk kesalahan ini, saya akan memposting apa yang saya lakukan jika seseorang menghadapi masalah yang sama .. Saya tidak ingin mengecualikan
DataSourceAutoConfiguration
tidak menggunakan database memori ..Dalam kasus saya, saya menetapkan parameter sebagai repliers lain katakan tetapi
application.properties
file itu di dalam folder yang salah .. lolJadi jika hal seperti ini tidak berfungsi, periksa apakah file ada di dalam
src/main/resources
! Dalam kasus saya itu ada di dalamsrc/main/resources/static
sumber
Jawabannya sangat sederhana, SpringBoot akan mencari driver basis data Embeddable, Jika Anda tidak mengonfigurasi dalam konfigurasi Anda dalam bentuk XML atau Anotasi, itu akan melempar pengecualian ini. Buat perubahan dalam anotasi Anda seperti ini
ini akan mengecualikan DataSourceAutoConfiguration. Dan penyelesaian Coding Perfect Simple akan berfungsi jika Anda telah mengkonfigurasi kelas Anda dengan benar.sumber
Melakukan di bawah ini berfungsi.
Tetapi jika saya ingin memiliki dataSource, saya tidak boleh melakukan konfigurasi di atas. Tautan di bawah ini mengatakan bahwa kita perlu semua properti di file application.properties. Semua properti harus dimulai dengan
spring.datasource.*
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
sumber
Jika Anda benar-benar membutuhkan "spring-boot-starter-data-jpa" sebagai ketergantungan proyek Anda dan pada saat yang sama Anda tidak ingin mengizinkan aplikasi Anda mengakses basis data apa pun, Anda cukup mengecualikan kelas konfigurasi otomatis
sumber
Saya mencoba semua hal yang disebutkan di atas tetapi tidak dapat menyelesaikan masalah. Saya menggunakan SQLite dan file SQLite saya ada di direktori resources.
a) Pengaturan dilakukan untuk IDE
Saya perlu secara manual menambahkan baris di bawah ini dalam file .classpath proyek saya
Setelah itu, saya menyegarkan dan membersihkan proyek dari MenuBar di bagian atas. seperti Project-> Clean-> Nama Proyek Saya.
Setelah itu, saya menjalankan proyek dan masalah teratasi.
application.properties untuk proyek saya adalah
b) Pengaturan dilakukan jika penyebaran Jar menimbulkan kesalahan yang sama
Anda perlu menambahkan baris berikut ke pom.xml Anda
Mungkin itu bisa membantu seseorang.
sumber
jika Anda tidak memiliki basis data dalam aplikasi Anda, cukup nonaktifkan konfigurasi-otomatis sumber data dengan menambahkan anotasi di bawah ini.
sumber
Sama dengan @Anas. Saya dapat menjalankannya di Eclipse, tetapi ketika saya menggunakan "java -jar ..." jalankan, itu memberi saya kesalahan ini. Kemudian saya menemukan path build java saya salah, ia kehilangan folder "src / main / resources", jadi, aplikasi tidak dapat menemukan application.properties. Ketika saya menambahkan folder “src / main / resources” di java build path, itu berhasil.
Dan, Anda perlu menambahkan "@PropertySource ({" application.properties "})" di kelas Aplikasi Anda.
Tangkapan layar-1
Tangkapan layar-2
sumber
Inilah cara saya mengatasi masalah ini.
Dalam kasus saya: Saya harus mengkonfigurasi sumber data untuk MySQL Server, yang merupakan Server eksternal.
Seperti yang kita semua tahu, boot Spring memiliki kemampuan untuk mengkonfigurasi DataSource secara otomatis untuk database tertanam.
Jadi, saya menyadari bahwa saya harus menonaktifkan konfigurasi otomatis sumber data agar dapat menggunakan konfigurasi khusus saya.
Seperti yang disebutkan di atas oleh banyak orang, saya menonaktifkan konfigurasi DataSource Otomatis dari Spring Boot di application.properties
Saya mendefinisikan semua properti konfigurasi hibernasi dalam file terpisah: hibernate-mysql.properties
Kemudian, saya mengkodekan Konfigurasi Hibernate Kustom saya sendiri dengan cara berikut dan itu menyelesaikan masalah.
Cara saya untuk mengonfigurasi DataSource yang diinginkan berdasarkan properti di file properti khusus dan mengisi LocalSessionFactoryBean Anda dengan sumber data Anda dan konfigurasi hibernasi lainnya.
Kelas Konfigurasi Kustom Hibernasi: -
-------------------------------------------- -------------
Konfigurasi Kustom Hibernasi
sumber
Gunakan dependensi di bawah ini.
sumber
Dalam kasus saya, menggunakan IDEA, setelah menghapus
out
direktori, maka semuanya kembali normal. Saya hanya tidak tahu mengapa, tetapi itu berhasil.sumber
Saya mengalami masalah yang sama dan tidak termasuk DataSourceAutoConfiguration dan HibernateJpaAutoConfiguration memecahkan masalah.
Saya telah menambahkan dua baris ini di file application.properties saya dan berhasil.
sumber
Sudah cukup banyak jawaban yang diposting. Namun, saya memposting kesalahan apa yang saya lakukan dan bagaimana saya memperbaikinya.
Dalam kasus saya, saya telah mengemas proyek saya sebagai
pom
gantinyajar
pom.xml:
Diubah menjadi:
Mungkin bermanfaat bagi seseorang dengan kesalahan yang sama.
sumber
Anda dapat mengunduh derby-10.10.1.1.jar dari Repositori Maven dan meletakkannya di folder WEB-INF / lib Anda, seperti Aplikasi ini / WEB-INF / lib / derby-10.10.1.1.jar. AnnotationConfigEmbeddedWebApplicationContext Anda yang tertanam akan mengambil driver database dan server web Anda akan mulai berjalan tanpa masalah :-)
sumber
Jika Anda menggunakan Gradle, sertakan toples driver yang benar seperti di bawah ini:
Atau jika menggunakan Maven maka lakukan dengan gaya Maven, itu harus menyelesaikan masalah Anda.
sumber
Kepada siapa pun yang datang ke utas ini setelah beberapa jam membenturkan kepala ke dinding. Saya memecahkan kesalahan ini dengan mengubah
untuk
dalam file schema.sql saya di direktori resources.
sumber