Spring Boot-не удается определить класс встроенного драйвера базы данных для типа базы данных нет
это ошибка, которая возникает при попытке запустить веб-приложение:
[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.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.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.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.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.access0(DevAppServerImpl.java:47)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl.run(DevAppServerImpl.java:212)
[INFO] at com.google.appengine.tools.development.DevAppServerImpl.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)
Я считаю, что у меня есть правильное сочетание datanucleus-appengine и datanucleus банок:
2.1: Требуется DataNucleus 3.1.x (core, api-jdo, api-jpa, enhancer). Требуется SDK 1.6.4 + обратите внимание, что этот выпуск Datanucleus больше не является поддерживается проектом DataNucleus
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();
}
}
приложение.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";
}
}
пом:
<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>
интересно, что может отсутствовать в моем приложении? Я следовал инструкции отсюда, используя Spring Data JPA на Google Appengine
30 ответов:
вы не предоставили Spring Boot достаточно информации для автоматической настройки
DataSource. Для этого вам нужно будет добавить некоторые свойства вapplication.propertiesСspring.datasourceпрефикс. Взгляните на DataSourceProperties чтобы увидеть все свойства, которые вы можете установить.вам нужно будет указать соответствующий url-адрес и имя класса драйвера:
spring.datasource.url = … spring.datasource.driver-class-name = …
Я решил эту проблему, добавив следующее в мой файл pom.
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.156</version> </dependency>
У меня была та же проблема, и исключение DataSourceAutoConfiguration решило проблему.
@SpringBootApplication @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class RecommendationEngineWithCassandraApplication { public static void main(String[] args) { SpringApplication.run(RecommendationEngineWithCassandraApplication.class, args); } }
это работает для меня (1.3.0.M5):
import org.springframework.boot.autoconfigure.jdbc.*; import org.springframework.boot.autoconfigure.orm.jpa.*; @Configuration @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) public class Application {исключить оба класса.
Он не работал с
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
теперь, когда я смотрю ближе, я думаю, что проблема с источником данных-это отвлекающий маневр. Автоматическая конфигурация Hibernate загрузки запускается, и это то, что вызывает необходимость источника данных. Hibernate находится на пути к классам, потому что у вас есть зависимость от
spring-boot-starter-data-jpaкоторый тянет вhibernate-entitymanager.обновить
spring-boot-starter-data-jpaзависимость для исключения Hibernate:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> </exclusion> </exclusions> </dependency>
Вы можете добавить
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfigurationна .
Spring Boot может автоматически настраивать встроенные базы данных H2, HSQL и Derby. Вам не нужно предоставлять какие-либо URL-адреса соединений, просто включите зависимость сборки для встроенной базы данных, которую вы хотите использовать.
например, типичные зависимости POM будут:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency>для меня, оставляя зависимость spring-boot-starter-data-jpa и просто используя spring-boot-starter-jdbc зависимость работала как шарм, пока у меня был h2 (или hsqldb), включенный в качестве зависимостей.
Я не знаю, если это слишком поздно, чтобы ответить. Я мог бы решить эту проблему, исключив DataSourceAutoConfiguration из spring boot.
Spring boot будет искать свойства datasoure в приложении.файл свойств.
пожалуйста, определите его в приложении.свойства или yml-файл
приложение.свойства
spring.datasource.url=xxx spring.datasource.username=xxx spring.datasource.password=xxx spring.datasource.driver-class-name=xxxЕсли вам нужна ваша собственная конфигурация, вы можете установить свой собственный профиль и использовать значения источника данных при создании bean.
я столкнулся с этим исключением, когда делал API для ElasticSearch с использованием данных Spring. Я сделал следующее И это сработало.
@SpringDataApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
Я решаю свою проблему просто добавив @AutoConfigureTestDatabase (replace=заменить.Нет)
@RunWith(SpringRunner.class) @DataJpaTest @AutoConfigureTestDatabase(replace=Replace.NONE) public class TestClienteRepository { }
У меня было две зависимости с groupId организации.springframework.данные, затем я удалил jpa и сохранил только mongodb, и это сработало!
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> </dependency>
Я получил сообщение об ошибке в названии от
o.s.b.d.LoggingFailureAnalysisReporterвместе с сообщением "приложение не удалось запустить". Оказалось, что я не добавил-Dspring.profiles.active=devдля моей конфигурации отладки Eclipse, поэтому у меня не было активного профиля.
Я тоже столкнулся с той же проблемой.
Cannot determine embedded database driver class for database type NONE.в моем случае удаление файла jar из репозитория, соответствующего базе данных, устраняет проблему. Там был поврежден jar присутствует в репозитории, который был причиной проблемы.
в моем случае, я поставил его зависимость maven для org.jasig.cas в моем pom, который вызвал зависимость hibernate и заставил Spring Boot искать источник данных для автоматической настройки сохраняемости hibernate. Я решил это, добавив com.зависимость maven h2database как предложено user672009. Спасибо, ребята!
поскольку это одна из первых тем, возвращенных в google для этой ошибки, я опубликую то, что я сделал, если кто-то столкнется с той же проблемой.. Я не хотел исключать
DataSourceAutoConfigurationне использовать базу данных в памяти..в моем случае я устанавливал параметры, как говорили другие репликаторы, но
application.propertiesфайл был в неправильной папке.. лолпоэтому в случае, если ничего подобного не работает, проверьте, если файл находится внутри
src/main/resources! В моем случае это было внутриsrc/main/resources/static
ответ очень прост, SpringBoot будет искать встраиваемый драйвер базы данных, Если вы не настроили ни в одной из своих конфигураций в виде XML или аннотаций, он вызовет это исключение. Внесите изменения в аннотацию следующим образом
Это исключит DataSourceAutoConfiguration. И идеальное простое завершение кодирования будет работать, если вы правильно настроили свой класс.@EnableAutoConfiguration(exclude=DataSourceAutoConfiguration.class)@Controller@EnableAutoConfiguration(exclude=DataSourceAutoConfiguration.class)public class SimpleController {@RequestMapping("/")@ResponseBodyString home() {return "Hello World!";}public static void main(String[] args) throws Exception {SpringApplication.run(SimpleController.class, args);}}
делать ниже работает.
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})но если бы я хотел иметь источник данных, я не должен делать выше конфигурации. Ниже ссылка говорит, что нам нужно все свойства в приложении.файл свойств. Все свойства должны начинаться с
spring.datasource.*http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
Если вам действительно нужен "spring-boot-starter-data-jpa" в качестве зависимости вашего проекта и в то же время вы не хотите, чтобы ваше приложение получало доступ к любой базе данных, вы можете просто исключить классы автоматической конфигурации
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
я попробовал все упомянутые выше вещи, но не смог решить проблему. Я использую SQLite, и мой файл SQLite был в каталоге ресурсов.
a)настройка выполнена для IDE
мне нужно вручную добавить ниже строки .classpath файл моего проекта.
<classpathentry kind="src" path="resources"/> <classpathentry kind="output" path="target/classes"/>после этого я обновил и очистил проект из меню вверху. как проект- > очистить - >мое имя проекта.
после этого, я запускаю проект и проблема решенный.
приложение.свойства для моего проекта
spring.datasource.url=jdbc:sqlite:resources/apiusers.sqlite spring.datasource.driver-class-name=org.sqlite.JDBC spring.jpa.properties.hibernate.dialect=com.enigmabridge.hibernate.dialect.SQLiteDialect spring.datasource.username= spring.datasource.password= spring.jpa.hibernate.ddl-auto=updateб) настройка выполнена, если развертывание Jar вызывает ту же ошибку
вам нужно добавить следующие строки в ваш pom.xml
<build> <resources> <resource> <directory>resources</directory> <targetPath>${project.build.outputDirectory}</targetPath> <includes> <include>application.properties</include> </includes> </resource> </resources> </build>может быть, это может помочь кому-то.
вы можете скачать дерби-10.10.1.1.баночки из-под Репозитории Maven и поместите его в папку WEB-INF/lib, как это приложение/WEB-INF/lib/derby-10.10.1.1.сосуд. Ваш встроенный AnnotationConfigEmbeddedWebApplicationcontext будет пикап драйвер базы данных и ваш веб-сервер начнет работать без каких-либо проблем: -)
Если вы используете Gradle, включите правую банку драйвера, как показано ниже:
compile("org.mongodb:mongo-java-driver:3.3.0")или если вы используете Maven, то сделайте это в стиле Maven, это должно решить вашу проблему.
для всех, кто приходит к этой теме после нескольких часов удара головой о стену. Я решил эту ошибку, изменив
create table `group`( id char(19) primary key );до
create table if not exists `group`( id char(19) primary key );в моей схеме.файл sql в каталоге ресурсов.
если у вас нет базы данных в вашем приложении, просто отключите автоматическую настройку источника данных, добавив ниже аннотацию.
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
то же самое для @Anas. Я могу запустить его в Eclipse, но когда я использую "java-jar ..."запустите его, это дает мне эту ошибку. Затем я нахожу, что мой путь сборки java неверен, в нем отсутствует папка "src/main/resources", поэтому приложение не может найти приложение.свойства. Когда я добавляю папку" src/main/resources " в путь сборки java, это сработало.
и, вам нужно добавить " @PropertySource ({"application.свойства"}) " в вашем приложении класс.
щелкните правой кнопкой мыши проект и выберите следующий параметр Maven -> обновить проект. Это решило мою проблему.
Как правило, такая ошибка возникает, когда вы использовали JPA и забыли добавить соединение с базой данных. Поэтому необходимо добавить в приложение зависимости, связанные с базой данных.
хотя вы хотите использовать JPA без подключения какой-либо внешней базы данных, а затем добавить hsqldb в свою зависимость.
надеюсь, это поможет!
вот как я решил эту проблему.
в моем случае: мне пришлось настроить источник данных для сервера MySQL, который был внешним сервером.
Как мы все знаем, Spring boot имеет возможность автоматической настройки источника данных для встроенных баз данных.
таким образом, я понял, что мне пришлось отключить автоматическую настройку источника данных, чтобы использовать мою пользовательскую конфигурацию.
Как упоминалось выше многими, я отключил автоматическую конфигурацию источника данных Spring Загрузка при применении.свойства
весна.автоконфигурация.исключить=орг.springframework.сапог.автоконфигурация.интерфейс jdbc.DataSourceAutoConfiguration
Я определил все свойства конфигурации Hibernate в отдельном файле: hibernate-mysql.свойства
затем я закодировал свою собственную конфигурацию спящего режима следующим образом, и это решило проблему.
мой способ настроить нужный источник данных на основе свойств в настраиваемом файл свойств и заполнить LocalSessionFactoryBean с источником данных и другой конфигурации гибернации.
Hibernate Пользовательский Класс Конфигурации: -
---------------------------------------------------------