Oto błąd zgłaszany podczas próby uruchomienia mojej aplikacji internetowej:
[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)
Wierzę, że mam odpowiednią kombinację słoików datanucleus-appengine
i datanucleus
:
2.1: Wymaga DataNucleus 3.1.x (core, api-jdo, api-jpa, enhancer). Wymaga pakietu SDK 1.6.4+ Uwaga: ta wersja Datanucleus nie jest już obsługiwana przez projekt DataNucleus
Konfiguracja aplikacji 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>
Zastanawiam się, czego brakuje w mojej aplikacji? Postępowałem zgodnie z instrukcją tutaj, używając Spring Data JPA w Google Appengine
Odpowiedzi:
Spring Boot nie dostarczył wystarczających informacji do automatycznej konfiguracji
DataSource
. Aby to zrobić, trzeba dodać kilka właściwościapplication.properties
zspring.datasource
prefiksem. Spójrz na DataSourceProperties aby zobaczyć wszystkie właściwości, które możesz ustawić.Musisz podać odpowiedni adres URL i nazwę klasy sterownika:
źródło
java -jar myJar.jar
, daje mi ten sam błąd.spring.datasource.url = … spring.datasource.driver-class-name = …
właściwości. Dodałem więc@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
w mojej głównej klasie. Ale po umieszczeniu tego teraz pojawia się błądParameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type 'javax.sql.DataSource' that could not be found.
. Proszę pomóż.Jeśli chcesz korzystać z wbudowanej bazy danych H2 ze startera Spring Boot, dodaj poniższą zależność do pliku pom.
Ale jak wspomniano w komentarzach, wbudowana baza danych H2 przechowuje dane w pamięci i nie przechowuje ich na stałe.
źródło
Miałbym ten sam problem i wykluczenie DataSourceAutoConfiguration rozwiązało problem.
źródło
application.properties
, na przykładspring.main.web-environment=false
@EnableAutoConfiguration
w klasie innej niż SpringBootApplication i musiałem tam również dodać wykluczenie. TBH, prawdopodobnie nie potrzebuję@EnableAutoConfiguration
tego przede wszystkim: /To zadziałało dla mnie (1.3.0.M5):
Wyklucz obie klasy.
To nie działało
źródło
Możesz dodać
do twojego
application.properties
pliku.źródło
Teraz, gdy przyjrzę się bliżej, wydaje mi się, że problem DataSource to czerwony śledź. Uruchamia się automatyczna konfiguracja rozruchu Hibernacji i to właśnie powoduje, że wymagane jest źródło danych. Hibernacja działa na ścieżce klasy, ponieważ masz zależność, od
spring-boot-starter-data-jpa
której się włączahibernate-entitymanager
.Zaktualizuj swoją
spring-boot-starter-data-jpa
zależność, aby wykluczyć Hibernację:źródło
Z podręcznika wiosennego .
Dla mnie pomijanie zależności Spring-boot-starter-data-jpa i po prostu użycie zależności spring-boot-starter-jdbc działało jak urok, pod warunkiem, że h2 (lub hsqldb) były uwzględnione jako zależności.
źródło
Spring boot wyszuka właściwości danych w pliku application.properties.
Zdefiniuj go w pliku application.properties lub yml
application.properties
Jeśli potrzebujesz własnej konfiguracji, możesz ustawić własny profil i używać wartości źródła danych podczas tworzenia komponentu bean.
źródło
Nie wiem, czy jest za późno na odpowiedź. Mógłbym rozwiązać ten problem, wykluczając DataSourceAutoConfiguration z wiosennego rozruchu.
źródło
Napotkałem ten wyjątek podczas tworzenia interfejsów API dla ElasticSearch przy użyciu Spring Data. Zrobiłem następujące i zadziałało.
źródło
Miałem dwie zależności z groupId z org.springframework.data, następnie usunąłem jpa i zachowałem tylko mongodb, i zadziałało!
źródło
Rozwiązuję problem, dodając @AutoConfigureTestDatabase (replace = Replace.NONE)
źródło
Otrzymałem komunikat o błędzie w tytule
o.s.b.d.LoggingFailureAnalysisReporter
wraz z komunikatem „APLIKACJA NIE POWIODŁA SIĘ DO STARTU”. Okazało się, że nie dodałem-Dspring.profiles.active=dev
do mojej konfiguracji debugowania Eclipse, więc nie miałem aktywnego profilu.źródło
Run -> Debug configurations... -> Maven build -> [build name] -> JRE -> VM arguments
)Ja też stanąłem przed tym samym problemem.
W moim przypadku usunięcie pliku jar z repozytorium odpowiadającego bazie danych rozwiązuje problem. W repozytorium znajdował się uszkodzony słoik, który był przyczyną problemu.
źródło
W moim przypadku umieściłem zależność maven dla org.jasig.cas w mojej pom, która wywołała zależność hibernacji i która spowodowała, że Spring Boot szukał źródła danych do automatycznego skonfigurowania trwałości hibernacji. Rozwiązałem to, dodając zależność maven com.h2database, zgodnie z sugestią użytkownika 672009. Dzięki chłopaki!
źródło
Ponieważ jest to jeden z pierwszych tematów zwróconych w Google z powodu tego błędu, opublikuję to, co zrobiłem, na wypadek, gdyby ktoś napotkał ten sam problem. Nie chciałem wykluczać
DataSourceAutoConfiguration
użycia bazy danych pamięci.W moim przypadku ustawiałem parametry, tak jak mówili inni autorzy, ale
application.properties
plik znajdował się w niewłaściwym folderze .. lolWięc jeśli nic takiego nie działa, sprawdź, czy plik jest w środku
src/main/resources
! W moim przypadku było w środkusrc/main/resources/static
źródło
Odpowiedź jest bardzo prosta, SpringBoot wyszuka sterownik bazy danych Embeddable. Jeśli nie skonfigurowałeś żadnej konfiguracji w postaci XML lub adnotacji, zgłasza ten wyjątek. Wprowadź zmiany w adnotacji w ten sposób
wyklucza to DataSourceAutoConfiguration. A ukończenie Perfect Simple Coding byłoby skuteczne, jeśli poprawnie skonfigurowałeś swoją klasę.źródło
Robienie poniżej działa.
Ale jeśli chciałbym mieć źródło danych, nie powinienem wykonywać powyższej konfiguracji. Poniższy link mówi, że potrzebujemy wszystkich właściwości w pliku application.properties. Wszystkie właściwości powinny zaczynać się od
spring.datasource.*
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
źródło
Jeśli naprawdę potrzebujesz „spring-boot-starter-data-jpa” jako zależności projektu, a jednocześnie nie chcesz zezwalać aplikacji na dostęp do żadnej bazy danych, możesz po prostu wykluczyć klasy autokonfiguracji
źródło
Próbowałem wszystkich wyżej wymienionych rzeczy, ale nie mogłem rozwiązać problemu. Korzystam z SQLite, a mój plik SQLite znajdował się w katalogu zasobów.
a) Konfiguracja wykonana dla IDE
Muszę ręcznie dodać poniższe wiersze w pliku .classpath mojego projektu.
Następnie odświeżyłem i wyczyściłem projekt z MenuBar u góry. jak Projekt-> Wyczyść-> Nazwa mojego projektu.
Następnie uruchamiam projekt i problem został rozwiązany.
application.properties dla mojego projektu to
b) Konfiguracja wykonana, jeśli wdrożenie jar wygeneruje ten sam błąd
Musisz dodać następujące wiersze do pliku pom.xml
Może to komuś pomóc.
źródło
jeśli nie masz żadnej bazy danych w swojej aplikacji, po prostu wyłącz automatyczną konfigurację źródła danych, dodając poniższą adnotację.
źródło
To samo dotyczy @Anas. Mogę uruchomić go w Eclipse, ale kiedy używam „java -jar ...” uruchom go, to daje mi ten błąd. Następnie stwierdziłem, że moja ścieżka kompilacji Java jest niepoprawna, brakuje jej folderu „src / main / resources”, więc aplikacja nie może znaleźć pliku application.properties. Gdy dodałem folder „src / main / resources” do ścieżki kompilacji Java, zadziałało.
I musisz dodać „@PropertySource ({„ application.properties ”})” w swojej klasie aplikacji.
Zrzut ekranu-1
Zrzut ekranu-2
źródło
W ten sposób rozwiązałem ten problem.
W moim przypadku: musiałem skonfigurować źródło danych dla MySQL Server, który był serwerem zewnętrznym.
Jak wszyscy wiemy, Spring Boot ma możliwość automatycznej konfiguracji DataSource dla osadzonych baz danych.
W ten sposób zdałem sobie sprawę, że musiałem wyłączyć automatyczną konfigurację źródła danych, aby użyć mojej niestandardowej konfiguracji.
Jak wspomniano powyżej przez wielu, wyłączyłem automatyczną konfigurację źródła danych Spring Boot w application.properties
Zdefiniowałem wszystkie właściwości konfiguracji hibernacji w osobnym pliku: hibernacja-mysql.properties
Następnie zakodowałem własną niestandardową konfigurację hibernacji w następujący sposób i to rozwiązało problem.
Mój sposób na skonfigurowanie żądanego źródła danych na podstawie właściwości w niestandardowym pliku właściwości i wypełnienie komponentu LocalSessionFactoryBean źródłem danych i inną konfiguracją hibernacji.
Hibernacja niestandardowa klasa konfiguracji: -
-------------------------------------------- -------------
Hibernacja Konfiguracja niestandardowa
źródło
Użyj tej zależności poniżej.
źródło
W moim przypadku, używając IDEA, po usunięciu
out
katalogu, wszystko wraca do normy. Po prostu nie wiem dlaczego, ale się udało.źródło
Miałem podobny problem i wykluczenie DataSourceAutoConfiguration i HibernateJpaAutoConfiguration rozwiązało problem.
Dodałem te dwie linie do mojego pliku application.properties i zadziałało.
źródło
Opublikowano już wystarczającą liczbę odpowiedzi. Podaję jednak, jaki błąd popełniłem i jak go naprawiłem.
W moim przypadku spakowałem swój projekt jako
pom
zamiastjar
pom.xml:
Zmienić na:
Może to być pomocne dla kogoś z tym samym błędem.
źródło
Możesz pobrać plik derby-10.10.1.1.jar z repozytorium Maven i umieścić go w folderze WEB-INF / lib, np. Application / WEB-INF / lib / derby-10.10.1.1.jar. Twój osadzony AnnotationConfigEmbeddedWebApplicationContext przejmie sterownik bazy danych i twój serwer zacznie działać bez żadnych problemów :-)
źródło
Jeśli używasz Gradle, dołącz prawą słoik sterownika, jak poniżej:
Lub jeśli używasz Maven, a następnie zrób to w stylu Maven, powinno to rozwiązać Twój problem.
źródło
Do każdego, kto przyjdzie do tego wątku po godzinach uderzania głową o ścianę. Rozwiązałem ten błąd, zmieniając
do
w moim pliku schema.sql w katalogu zasobów.
źródło