[英]Error org.springframework.beans.factory.BeanCreationException: Error creating bean Spring Boot
I am doing springboot + hibernate application. 我正在做springboot +休眠应用程序。 When I run the application on tomcat server I am getting some exceptions. 当我在tomcat服务器上运行该应用程序时,出现了一些异常。 Errors: http://pastebin.com/tdwWTvFZ 错误: http : //pastebin.com/tdwWTvFZ
pom.xml 的pom.xml
<groupId>pzn</groupId>
<artifactId>com.mryndak.pzn</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.9.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
<!-- use UTF-8 for everything -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
</repository>
<repository>
<id>org.jboss.repository.releases</id>
<name>JBoss Maven Release Repository</name>
<url>https://repository.jboss.org/nexus/content/repositories/releases</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
application.yml application.yml
spring:
datasource:
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/pzn
username: mateusz
password: root
jpa:
database_platform: org.hibernate.dialect.PostgreSQLDialect
Members.java Members.java
package com.mryndak.pzn.entity;
import org.springframework.boot.orm.jpa.EntityScan;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* Created by mateusz on 12.05.15.
*/
@Entity
public class Members {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String secondName;
private String lastName;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getSecondName() {
return secondName;
}
public void setSecondName(String secondName) {
this.secondName = secondName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return String.format(
"Member[id=%d, firstName='%s', secondName='%s', lastName='%s'",
id, firstName, secondName, lastName
);
}
}
MembersRepository.java MembersRepository.java
package com.mryndak.pzn.repository;
import com.mryndak.pzn.entity.Members;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import java.util.List;
/**
* Created by mateusz on 12.05.15.
*/
@RepositoryRestResource
public interface MembersRepository extends CrudRepository<Members, Integer> {
List<Members> findByFirstName(@Param("firstName") String firstName);
}
MembersController.java MembersController.java
package com.mryndak.pzn.controller;
import com.mryndak.pzn.entity.Members;
import com.mryndak.pzn.repository.MembersRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* Created by mateusz on 12.05.15.
*/
@RestController
public class MambersController {
@Autowired
MembersRepository membersRepository;
@RequestMapping(value = "/api/members/", method = RequestMethod.GET )
public List<Members> getAll() {
return (List<Members>) membersRepository.findAll();
}
}
Application.java Application.java
package com.mryndak.pzn;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
/**
* Created by mateusz on 12.05.15.
*/
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableJpaRepositories(basePackages = "com.mryndak.pzn.repository")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Remove the following dependency, it is causing a version conflict: 删除以下依赖项,这会导致版本冲突:
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
Hibernate 4.3 implements JPA 2.1 and brings its own version of the API jar. Hibernate 4.3实现了JPA 2.1,并带来了自己的API jar版本。 JPA 1.0 is way too old. JPA 1.0太旧了。
Also remove the direct dependency of hibernate-core, since spring-data-jpa has its own dependency on it. 还请删除hibernate-core的直接依赖项,因为spring-data-jpa对其具有自己的依赖项。 If you want to change the hibernate version, add the following to the POM: 如果要更改休眠版本,请将以下内容添加到POM:
<properties>
<hibernate.version>4.3.9.Final</hibernate.version>
</properties>
This will make sure, that all required dependencies for Hibernate have the same version (in your case, hibernate-core was on 4.3.9.Final, and hibernate-entitymanager was still on 4.3.8.Final, which caused the conflict). 这样可以确保Hibernate所需的所有依赖项都具有相同的版本(在您的情况下,hibernate-core位于4.3.9.Final上,而hibernate-entitymanager仍位于4.3.8.Final上,这会引起冲突)。 See also the Spring Boot documentation about that topic: http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-customize-dependency-versions-with-maven 另请参阅有关该主题的Spring Boot文档: http : //docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-customize-dependency-versions-with-maven
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.