Dies ist der Fehler, der beim Versuch, meine Web-App auszuführen, ausgelöst wird:
[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)
Ich glaube, ich habe die richtige Kombination aus datanucleus-appengine
und datanucleus
Gläsern:
2.1: Benötigt DataNucleus 3.1.x (Core, API-JDO, API-JPA, Enhancer). Benötigt SDK 1.6.4+ Beachten Sie, dass diese Version von Datanucleus vom DataNucleus-Projekt nicht mehr unterstützt wird
JPA App Config:
@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>
Ich frage mich, was in meiner App fehlen könnte. Ich habe die Anweisungen von hier aus unter Verwendung von Spring Data JPA in Google Appengine befolgt
Antworten:
Sie haben Spring Boot nicht genügend Informationen zur automatischen Konfiguration von a bereitgestellt
DataSource
. Dazu müssen Sie einige Eigenschaftenapplication.properties
mit demspring.datasource
Präfix hinzufügen . Sehen Sie sich DataSourceProperties an, um alle Eigenschaften anzuzeigen , die Sie festlegen können.Sie müssen die entsprechende URL und den Namen der Treiberklasse angeben:
quelle
java -jar myJar.jar
gibt es mir den gleichen Fehler.spring.datasource.url = … spring.datasource.driver-class-name = …
Eigenschaften an. Also habe ich@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
in meiner Hauptklasse hinzugefügt . Aber nachdem ich das jetzt gesagt habe, bekomme ich einen FehlerParameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type 'javax.sql.DataSource' that could not be found.
. Bitte helfen Sie.Wenn Sie die eingebettete H2-Datenbank von Spring Boot Starter verwenden möchten, fügen Sie Ihrer POM-Datei die folgende Abhängigkeit hinzu.
Wie in den Kommentaren erwähnt, speichert die eingebettete H2-Datenbank Daten im Speicher und speichert sie nicht dauerhaft.
quelle
Ich hatte das gleiche Problem und das Ausschließen der DataSourceAutoConfiguration löste das Problem.
quelle
application.properties
spring.main.web-environment=false
@EnableAutoConfiguration
in einer Nicht-SpringBootApplication-Klasse und musste dort auch den Ausschluss hinzufügen. TBH, ich brauche@EnableAutoConfiguration
es wahrscheinlich überhaupt nicht : /Das hat bei mir funktioniert (1.3.0.M5):
Schließen Sie beide Klassen aus.
Es hat nicht funktioniert mit
quelle
Du kannst hinzufügen
zu Ihrer
application.properties
Datei.quelle
Jetzt, wo ich genauer hinschaue, denke ich, dass das DataSource-Problem ein roter Hering ist. Die automatische Konfiguration des Ruhezustands von Boot wird ausgelöst, weshalb eine DataSource erforderlich ist. Der Ruhezustand befindet sich auf dem Klassenpfad, da Sie eine Abhängigkeit haben, von
spring-boot-starter-data-jpa
der Sie profitierenhibernate-entitymanager
.Aktualisieren Sie Ihre
spring-boot-starter-data-jpa
Abhängigkeit, um den Ruhezustand auszuschließen:quelle
Aus dem Federhandbuch .
Für mich war es wie ein Zauber, die Spring-Boot-Starter-Daten-JPA-Abhängigkeit wegzulassen und nur die Spring-Boot-Starter-JDBC-Abhängigkeit zu verwenden, solange ich h2 (oder hsqldb) als Abhängigkeiten eingeschlossen hatte.
quelle
Spring Boot sucht in der Datei application.properties nach Datenquelleneigenschaften.
Bitte definieren Sie es in der Datei application.properties oder in der Datei yml
application.properties
Wenn Sie eine eigene Konfiguration benötigen, können Sie Ihr eigenes Profil festlegen und die Datenquellenwerte während der Bean-Erstellung verwenden.
quelle
Ich nicht, wenn es zu spät ist, um zu antworten. Ich könnte dieses Problem lösen, indem ich DataSourceAutoConfiguration vom Spring Boot ausschließe.
quelle
Ich war mit dieser Ausnahme konfrontiert, als ich APIs für ElasticSearch mit Spring Data ausführte. Ich habe folgendes getan und es hat funktioniert.
quelle
Ich hatte zwei Abhängigkeiten mit groupId von org.springframework.data, dann entfernte ich jpa und behielt nur mongodb, und es funktionierte!
quelle
Ich löse mein Problem, indem ich nur @AutoConfigureTestDatabase hinzufüge (replace = Replace.NONE)
quelle
Ich habe die Fehlermeldung im Titel
o.s.b.d.LoggingFailureAnalysisReporter
zusammen mit der Meldung "APPLICATION FAILED TO START" erhalten. Es stellte sich heraus, dass ich-Dspring.profiles.active=dev
meine Eclipse-Debug-Konfiguration nicht erweitert hatte , sodass ich kein aktives Profil hatte.quelle
Run -> Debug configurations... -> Maven build -> [build name] -> JRE -> VM arguments
)Auch ich stand vor dem gleichen Problem.
In meinem Fall behebt das Löschen der JAR-Datei aus dem Repository, das der Datenbank entspricht, das Problem. Im Repository war ein beschädigtes Glas vorhanden, das das Problem verursachte.
quelle
In meinem Fall habe ich eine Maven-Abhängigkeit für org.jasig.cas in meinen POM eingefügt, die eine Ruhezustandsabhängigkeit ausgelöst hat und Spring Boot veranlasst hat, nach einer Datenquelle zu suchen, um die Ruhezustandspersistenz automatisch zu konfigurieren. Ich habe es gelöst, indem ich die Maven-Abhängigkeit von com.h2database hinzugefügt habe, wie von user672009 vorgeschlagen. Danke Leute!
quelle
Da dies eines der ersten Themen ist, die in Google für diesen Fehler zurückgegeben werden, werde ich veröffentlichen, was ich getan habe, falls jemand das gleiche Problem hat. Ich wollte
DataSourceAutoConfiguration
weder ausschließen noch eine Speicherdatenbank verwenden.In meinem Fall habe ich die Parameter wie in den anderen Antworten angegeben, aber die
application.properties
Datei befand sich im falschen Ordner. LolFalls nichts dergleichen funktioniert, überprüfen Sie, ob sich die Datei darin befindet
src/main/resources
! In meinem Fall war es drinnensrc/main/resources/static
quelle
Die Antwort ist sehr einfach. SpringBoot sucht nach einem eingebetteten Datenbanktreiber. Wenn Sie in keiner Ihrer Konfigurationen in Form von XML oder Anmerkungen konfiguriert haben, wird diese Ausnahme ausgelöst. Nehmen Sie die Änderungen in Ihrer Anmerkung wie folgt vor
Dadurch wird die DataSourceAutoConfiguration ausgeschlossen. Und die Vervollständigung von Perfect Simple Coding würde funktionieren, wenn Sie Ihre Klasse richtig konfiguriert haben.quelle
Das Folgende funktioniert.
Aber wenn ich dataSource haben wollte, sollte ich die obige Konfiguration nicht durchführen. Der folgende Link besagt, dass wir alle Eigenschaften in der Datei application.properties benötigen. Alle Eigenschaften sollten mit beginnen
spring.datasource.*
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
quelle
Wenn Sie "Spring-Boot-Starter-Data-JPA" wirklich als Projektabhängigkeit benötigen und gleichzeitig nicht zulassen möchten, dass Ihre App auf eine Datenbank zugreift, können Sie einfach automatische Konfigurationsklassen ausschließen
quelle
Ich habe alle oben genannten Dinge ausprobiert, konnte das Problem jedoch nicht beheben. Ich verwende SQLite und meine SQLite-Datei befand sich im Ressourcenverzeichnis.
a) Einrichtung für IDE durchgeführt
Ich muss die folgenden Zeilen manuell in die .classpath-Datei meines Projekts einfügen.
Danach habe ich das Projekt von MenuBar oben aktualisiert und bereinigt. wie Projekt-> Reinigen-> Mein Projektname.
Danach führe ich das Projekt aus und das Problem wurde behoben.
application.properties für mein Projekt ist
b) Einrichtung abgeschlossen, wenn die Jar-Bereitstellung denselben Fehler auslöst
Sie müssen Ihrer pom.xml folgende Zeilen hinzufügen
Vielleicht hilft es jemandem.
quelle
Wenn Ihre Anwendung keine Datenbank enthält, deaktivieren Sie einfach die automatische Konfiguration der Datenquelle, indem Sie die folgenden Anmerkungen hinzufügen.
quelle
Das gleiche gilt für @Anas. Ich kann es in Eclipse ausführen, aber wenn ich "java -jar ..." verwende, wird es ausgeführt, und es gibt mir diesen Fehler. Dann finde ich, dass mein Java-Erstellungspfad falsch ist und der Ordner "src / main / resources" fehlt, sodass die Anwendung application.properties nicht finden kann. Wenn ich den Ordner "src / main / resources" im Java-Erstellungspfad hinzufüge, hat es funktioniert.
Außerdem müssen Sie Ihrer Anwendungsklasse "@PropertySource ({" application.properties "})" hinzufügen.
Screenshot-1
Screenshot-2
quelle
So habe ich dieses Problem gelöst.
In meinem Fall: Ich musste die Datenquelle für MySQL Server konfigurieren, bei dem es sich um einen externen Server handelte.
Wie wir alle wissen, kann Spring Boot DataSource für eingebettete Datenbanken automatisch konfigurieren.
Daher wurde mir klar, dass ich die automatische Konfiguration der Datenquelle deaktivieren musste, um meine benutzerdefinierte Konfiguration verwenden zu können.
Wie oben von vielen erwähnt, habe ich die automatische DataSource-Konfiguration von Spring Boot unter application.properties deaktiviert
Ich habe alle Konfigurationseigenschaften für den Ruhezustand in einer separaten Datei definiert: hibernate-mysql.properties
Dann habe ich meine eigene benutzerdefinierte Ruhezustandskonfiguration folgendermaßen codiert und das Problem behoben.
Meine Methode zum Konfigurieren der gewünschten DataSource basierend auf Eigenschaften in einer benutzerdefinierten Eigenschaftendatei und zum Auffüllen Ihrer LocalSessionFactoryBean mit Ihrer Datenquelle und einer anderen Konfiguration im Ruhezustand.
Benutzerdefinierte Konfigurationsklasse für den Ruhezustand: -
---------------------------------------- -------------
Benutzerdefinierte Konfiguration im Ruhezustand
quelle
Verwenden Sie dies unter Abhängigkeit.
quelle
In meinem Fall wird mit IDEA nach dem Entfernen des
out
Verzeichnisses alles wieder normal. Ich weiß nur nicht warum, aber es hat geklappt.quelle
Ich hatte das ähnliche Problem und das Ausschließen von DataSourceAutoConfiguration und HibernateJpaAutoConfiguration löste das Problem.
Ich habe diese beiden Zeilen in meine Datei application.properties eingefügt und es hat funktioniert.
quelle
Es wurden bereits genügend Antworten veröffentlicht. Ich poste jedoch, welchen Fehler ich gemacht habe und wie ich ihn korrigiert habe.
In meinem Fall hatte ich mein Projekt als
pom
statt verpacktjar
pom.xml:
Gewechselt zu:
Es kann für jemanden mit dem gleichen Fehler hilfreich sein.
quelle
Sie können das Derby-10.10.1.1.jar aus dem Maven-Repository herunterladen und in Ihrem Ordner WEB-INF / lib ablegen, wie in dieser Anwendung / WEB-INF / lib / derby-10.10.1.1.jar. Ihr eingebetteter AnnotationConfigEmbeddedWebApplicationContext nimmt den Datenbanktreiber auf und Ihr Webserver wird ohne Probleme ausgeführt :-)
quelle
Wenn Sie Gradle verwenden, fügen Sie das rechte Treiberglas wie folgt hinzu:
Oder wenn Sie Maven dann im Maven-Stil verwenden, sollte es Ihr Problem lösen.
quelle
Für jeden, der zu diesem Thread kommt, nachdem er stundenlang mit dem Kopf gegen eine Wand geschlagen hat. Ich habe diesen Fehler durch Ändern behoben
zu
in meiner Datei schema.sql im Ressourcenverzeichnis.
quelle