2016-12-19 53 views
0

我是Spring Boot中的新成员。我正在尝试使用Hibernate制作一个Web应用程序,但我遇到了这些错误。我看起来类似的问题,但我找不到解决方案。我该如何解决它?Spring Boot - java.lang.ClassNotFoundException:org.hibernate.engine.transaction.spi.TransactionContext

2016年12月19日18:56:39.328 INFO 143744 --- [主要] org.hibernate.Version:HHH000412:休眠核心 {5.0.11.Final}

java.lang中.ClassNotFoundException: org.hibernate.engine.transaction.spi.TransactionContext在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 〜[NA:1.8.0_91]在 java.lang.ClassLoader.loadClass( ClassLoader.java:424)〜[na:1.8.0_91] at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331) 〜[na:1.8.0_91] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)〜[NA:1.8.0_91] 在 org.springframework.orm.hibernate4.HibernateTransactionManager.isSameConnectionForEntireSession(HibernateTransactionManager.java:711) 〜[弹簧ORM 4.3.4.RELEASE]在 org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:445) 〜[spring-orm-4.3.4.RELEASE.jar: 4.3.4.RELEASE]在 org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) 〜[弹簧-TX-4.3.4.RELEASE.jar:4.3.4.RELEASE]在 有机.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspec (TransactionAspectSupport.java:277) 〜[[ spring-tx-4.3.4.RELEASE.jar:4.3.4.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 〜[spring-tx-4.3.4.RELEASE .jar:4.3.4.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 〜[spring-aop-4.3.4.RELEASE.jar:4.3.4.RELEASE]在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) 〜[spring-aop-4.3.4.RELEASE.jar:4.3.4.RELEASE] at com.sun.proxy。$ Proxy77.listPosts(Unknown Source)〜[na:na] at com.monat.service.PostServiceImpl.listPosts(PostServiceImpl.java:24) 〜[classes /:na] at com .monat.controller.PostController.list(PostController.java:20) 〜[类/:NA]

我的POM。XML依赖性

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.2.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

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

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

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

     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.4</version> 
     </dependency> 

    </dependencies> 

我的控制器类

@Controller 
@RequestMapping("/posts") 
public class PostController 
{ 

    @Autowired 
    PostService postService; 

    @RequestMapping(value="", method=RequestMethod.GET) 
    public String list(Model model){ 
     model.addAttribute("listData",postService.listPosts()); 

     return "list"; 
    } 

} 

我的服务类

@Service 
public class PostServiceImpl implements PostService{ 

    @Autowired 
    PostDao postDao; 

    @Override 
    public List<Post> listPosts() { 
     return postDao.listPosts(); 
    } 

} 

我的库类

@Repository 
public class PostDaoImpl implements PostDao{ 

    @Autowired 
    private SessionFactory sessionFactory; 

    public PostDaoImpl(){} 

    public PostDaoImpl(SessionFactory sessionFactory){ 
     this.sessionFactory=sessionFactory; 
    } 

    @Override 
    @Transactional 
    public List<Post> listPosts() { 

     @SuppressWarnings("unchecked") 
     List<Post> listPost2 = (List<Post>) sessionFactory.getCurrentSession().createQuery("from Post"); 

     return listPost2; 
    } 

} 

回答

3

我已经解决了它。我已经删除了这部分我的配置类,它已经解决了。

@Bean 
    public HibernateTransactionManager transactionManager() { 
    HibernateTransactionManager transactionManager = 
     new HibernateTransactionManager(); 
    transactionManager.setSessionFactory(sessionFactory().getObject()); 
    return transactionManager; 
1

尝试增加这些依赖于d ependencies你的POM的部分和重建项目:

<dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
    </dependency> 
+0

我仍然采取相同的错误。 – user2400092