2017-11-21 28 views
0

単純なspringbootプロジェクトのmavenテスト中にエラーが発生しました。 Mavenの検証とコンパイルを実行できます。Springブート - Mavenビルドエラー

ソースコードは以下の通りです:

package com.example.demo; 
 

 
import org.springframework.boot.SpringApplication; 
 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
 

 
@SpringBootApplication 
 
public class Microservice1Application { 
 

 
\t public static void main(String[] args) { 
 
\t \t SpringApplication.run(Microservice1Application.class, args); 
 
\t } 
 
}

テストコードは以下の通りです:

​​

私は取得しています誤りがあります以下のように:

------------------------------------------------------------------------------- 
 
Test set: com.example.demo.Microservice1ApplicationTests 
 
------------------------------------------------------------------------------- 
 
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.895 sec <<< FAILURE! - in com.example.demo.Microservice1ApplicationTests 
 
contextLoads(com.example.demo.Microservice1ApplicationTests) Time elapsed: 0.011 sec <<< ERROR! 
 
java.lang.IllegalStateException: Failed to load ApplicationContext 
 
\t at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) 
 
\t at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287) 
 
\t at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
 
\t at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289) 
 
\t at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
 
\t at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) 
 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 
 
\t at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) 
 
\t at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1078) 
 
\t at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:857) 
 
\t at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) 
 
\t at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 
 
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 
 
\t at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:264) 
 
\t at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:228) 
 
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 
 
\t at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) 
 
\t at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)

あなたは助けてくださいことはできますか?

+1

_Thereの一部としての性質と、「hibernate.driver」として「hibernate.dialect」を追加していることがわかりますがあり

@Configuration @EnableTransactionManagement @PropertySource(value = { "classpath:hibernate.properties" }) public class HibernateConfiguration { @Autowired private Environment environment; @Bean public LocalSessionFactoryBean sessionFactory() { LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; } @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(environment.getRequiredProperty("hibernate.connection.driver")); dataSource.setUrl(environment.getRequiredProperty("hibernate.connection.url")); dataSource.setUsername(environment.getRequiredProperty("hibernate.connection.username")); dataSource.setPassword(environment.getRequiredProperty("hibernate.connection.password")); return dataSource; } private Properties hibernateProperties() { Properties properties = new Properties(); properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect")); properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql")); properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql")); properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto")); return properties; } @Bean @Autowired public HibernateTransactionManager transactionManager(SessionFactory s) { HibernateTransactionManager txManager = new HibernateTransactionManager(); txManager.setSessionFactory(s); return txManager; } } 

テスト失敗です。最初にテストが失敗するかどうかを確認してください。 _個別のテスト結果については、target \ surefire-reportsを参照してください。 – pirho

+0

次のようにエラーが発生しています。テストセット:com.example.demo.Microservice1ApplicationTests ---------------- -------------------------------------------------- ------------- テスト実行:1、失敗:0、エラー:1、スキップ:0、経過時間:2.702秒<<< FAILURE! - com.example.demo.Microservice1ApplicationTests内 contextLoads(com.example.demo.Microservice1ApplicationTests)経過時間:0.001秒<<< ERROR! java.lang.IllegalStateException:ApplicationContextをロードできませんでした – DS2017

+0

質問にこの物を追加し、コメントではなく適切に書式を設定してください。あなたの質問を編集してください。失敗したテストケースを見つけようとします。何らかの理由で失敗するか、有効なテストではありません。 – pirho

答えて

1

だけ「に起因する」最新をお読みください。

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set 
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) 
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54) 

ですから、どこかで構成XMLやYAMLでこのようなものが必要です。私もMySQLの方言を使用して、私

hibernate.dialect=org.hibernate.dialect.MySQLDialect 
hibernate.connection.driver=com.mysql.jdbc.Driver 

をMySQLドライバを指定してください(あなたのケースでは適切なデータベースを確認する必要があります)。

最後にHibernateの設定は次のようになります。私は、データソース

+0

こんにちは、私はMavenリポジトリを.m2リポジトリにデフォルト設定していました。これで問題は解決しました。奇妙な,,, – DS2017

関連する問題