2017-02-07 143 views
2

我有一個maven spring引導應用程序;它是驚人地工作時我從Eclipse中啓動它,但是當我把它從命令行:Spring Boot異常,錯誤創建bean

1)MVN包

2)Java的罐子目標/ myapp.jar

是投擲錯誤:

11:34:48.418 [main] WARN o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/myapp/configuration/JpaConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'entityManagerFactory' threw exception; nested exception is java.lang.IllegalStateException: required key [datasource.sampleapp.hibernate.dialect] not found 
11:34:48.421 [main] INFO o.a.catalina.core.StandardService - Stopping service Tomcat 
11:34:48.436 [localhost-startStop-1] WARN o.a.c.loader.WebappClassLoaderBase - The web application [myapp] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 
java.lang.Object.wait(Native Method) 
java.lang.ref.ReferenceQueue.remove(Unknown Source) 
com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) 
11:34:48.441 [main] WARN o.s.boot.SpringApplication - Error handling failed (Error creating bean with name 'delegatingApplicationListener' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry' available) 
11:34:48.448 [main] ERROR o.s.boot.SpringApplication - Application startup failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/myapp/configuration/JpaConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean]: Factory method 'entityManagerFactory' threw exception; nested exception is java.lang.IllegalStateException: required key [datasource.sampleapp.hibernate.dialect] not found 

這裏我的pom.xml雖然當我開始從Eclipse的應用程序工作正常,所以我不認爲錯誤是在這裏:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.myapp</groupId> 
    <artifactId>MyApp</artifactId> 
    <version>1.0.0</version> 
    <packaging>jar</packaging> 

    <name> MyApp </name> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.3.RELEASE</version> 
    </parent> 

    <properties> 
     <java.version>1.8</java.version> 
     <h2.version>1.4.187</h2.version> 
    </properties> 

    <dependencies> 
     … 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
        <configuration> 
        <archive> 
        <manifest> 
         <mainClass>com.playganizer.PlayganizerBackend</mainClass> 
        </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

application.properties:

jdbc.driverClassName = com.mysql.jdbc.Driver 
jdbc.url = jdbc:mysql://localhost:3306/myapp 
jdbc.username = myuser 
jdbc.password = mypass 
hibernate.dialect = org.hibernate.dialect.MySQLDialect 
hibernate.show_sql = true 
hibernate.format_sql = true 

任何想法?

回答

1

更改配置,這一點,我認爲它會工作:

# Connection url for the database "myapp" 
spring.datasource.url = jdbc:mysql://localhost:3306/myapp 
# Username and password 
spring.datasource.username = myuser 
spring.datasource.password = mypass 
# Show or not log for each sql query 
spring.jpa.show-sql = true 
spring.jpa.hibernate.ddl-auto = update 
# Naming strategy 
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy 
# Allows Hibernate to generate SQL optimized for a particular DBMS 
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 

檢查在你的pom.xml你有這些依賴關係:

 <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
+0

嘿,感謝您的回答,對後我添加application.properties,它看起來是否正確? – mattobob

+0

我更新我的迴應,希望爲您工作! –

0

如果您再次讀取日誌,您會發現 java.lang.IllegalStateException: required key [datasource.sampleapp.hibernate.dialect] not found,您需要定義此屬性來創建該bean。

相關問題