2015-12-26 3 views
0

Я пытаюсь получить доступ к моей базе данных с использованием класса EntityManager, но у меня есть ошибка при попытке развернуть мой проект на Tomcat.Spring MVC + EntityManger - Ошибка создания bean-компонента

Это мой DAO Calss:

package ninja.majewski.newcats.application; 

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 
import javax.sql.DataSource; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import ninja.majewski.newcats.domain.Cat; 

package ninja.majewski.newcats.application; 

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 
import javax.sql.DataSource; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import ninja.majewski.newcats.domain.Cat; 

@Repository 
public class CatsDAO { 

    @Autowired 
    private DataSource dataSource; 

    @PersistenceContext 
    private EntityManager entityManager; 

    private Connection conn; 

    private ArrayList<Cat> cats; 

    public CatsDAO() { 
     cats = new ArrayList<>(); 
    } 

    private void readDataFromDb() { 
     cats.clear(); 

     String sql = "SELECT * FROM catstable"; 
     conn = null; 

     try { 
      conn = dataSource.getConnection(); 
      PreparedStatement ps = conn.prepareStatement(sql); 
      ResultSet rs = ps.executeQuery(); 
      while(rs.next()) { 
       String name = rs.getString("name"); 
       Float weight = rs.getFloat("weight"); 
       String owner = rs.getString("owner"); 
       cats.add(new Cat(name, weight, owner)); 
      } 

      rs.close(); 
      ps.close(); 
     } 
     catch(SQLException e) { 
      e.printStackTrace(); 
     } 
     finally { 
      closeConnection(); 
     } 
    } 

    public void addCat(Cat c) { 
     cats.add(c); 

//  String sql = "INSERT INTO catstable(name, weight, owner) VALUES(?, ?, ?)"; 
//  conn = null; 
//  
//  try { 
//   conn = dataSource.getConnection(); 
//   PreparedStatement ps = conn.prepareStatement(sql); 
//   ps.setString(1, c.getName()); 
//   ps.setFloat(2, c.getWeight()); 
//   ps.setString(3, c.getOwner()); 
// 
//   ps.executeUpdate(); 
//   
//   ps.close(); 
//  } 
//  catch(SQLException e) { 
//   e.printStackTrace(); 
//  } 
//  finally { 
//   closeConnection(); 
//  } 

     entityManager.merge(c); 
    } 

    public void removeCat(String name) { 
     for(int i = 0; i < cats.size(); i++) { 
      if(cats.get(i).getName().equals(name)) { 
       cats.remove(i); 
       break; 
      } 
     } 

     String sql = "DELETE FROM WHERE name = ?"; 
     conn = null; 

     try { 
      conn = dataSource.getConnection(); 
      PreparedStatement ps = conn.prepareStatement(sql); 
      ps.setString(1, name); 
      ps.executeUpdate(); 

      ps.close(); 
     } 
     catch(SQLException e) { 
      e.printStackTrace(); 
     } 
     finally { 
      closeConnection(); 
     } 
    } 

    public Cat getCatById(Integer id) { 
     return cats.get(id); 
    } 

    public ArrayList<Cat> getCats() { 
     readDataFromDb(); 

     return cats; 
    } 

    private void closeConnection() { 
     if(conn != null) { 
      try { 
       conn.close(); 
      } 
      catch(SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

Мой applicationContext.xml файл:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation=" 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-4.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> 

    <context:component-scan base-package="ninja.majewski" /> 

    <context:annotation-config /> 


    <mvc:annotation-driven /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/views/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

    <bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/cats" /> 
     <property name="username" value="root" /> 
     <property name="password" value="" /> 
    </bean> 

    <tx:annotation-driven /> 
    <bean id="entityManager" 
     class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="packagesToScan" value="ninja.majewski" /> 
     <property name="jpaVendorAdapter"> 
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
       <property name="showSql" value="false" /> 
       <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" /> 
      </bean> 
     </property> 
     <property name="jpaProperties"> 
      <props> 
       <prop key="hibernate.hbm2ddl.auto">update</prop> 
      </props> 
     </property> 
    </bean> 
    <bean 
     class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 
    <bean 
     class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> 
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    </bean> 

</beans> 

Мой pom.xml файл:

<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>ninja.majewski.newcats</groupId> 
    <artifactId>NewCatsProject</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <modules> 
     <module>NewCatsProject-domain</module> 
     <module>NewCatsProject-application</module> 
     <module>NewCatsProject-webapp</module> 
    </modules> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.2.2.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.0.6.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>5.0.6.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 

    </dependencies> 

</project> 

И мои ошибки:

gru 26, 2015 10:56:51 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:NewCatsProject-webapp' did not find a matching property. 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server version:  Apache Tomcat/8.0.30 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server built:   Dec 1 2015 22:30:46 UTC 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server number:   8.0.30.0 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: OS Name:    Windows XP 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: OS Version:   5.1 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Architecture:   x86 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Java Home:    D:\aplikacje\Java\jdk1.8.0_45\jre 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JVM Version:   1.8.0_45-b15 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JVM Vendor:   Oracle Corporation 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: CATALINA_BASE:   C:\Documents and Settings\KM\Pulpit\KursFroWom\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: CATALINA_HOME:   E:\apache-tomcat-8.0.30 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dcatalina.base=C:\Documents and Settings\KM\Pulpit\KursFroWom\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dcatalina.home=E:\apache-tomcat-8.0.30 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dwtp.deploy=C:\Documents and Settings\KM\Pulpit\KursFroWom\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Djava.endorsed.dirs=E:\apache-tomcat-8.0.30\endorsed 
gru 26, 2015 10:56:51 AM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dfile.encoding=Cp1250 
gru 26, 2015 10:56:51 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\aplikacje\Java\jdk1.8.0_45\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:/Aplikacje/Java/jre1.8.0_65/bin/client;D:/Aplikacje/Java/jre1.8.0_65/bin;D:/Aplikacje/Java/jre1.8.0_65/lib/i386;D:\Aplikacje\NVIDIA Corporation\PhysX\Common;C:\Documents and Settings\All Users\Dane aplikacji\Oracle\Java\javapath;D:\Aplikacje\Borland\CBUILD~1\Bin;D:\Aplikacje\Borland\CBUILD~1\Projects\Bpl;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\PROGRAM FILES\QUICKTIME\QTSYSTEM;D:\Aplikacje\Internet Explorer;C:\xampp\mysql\lib;D:\aplikacje\Java\jdk1.8.0_45\bin;D:\TDM-GCC-32\bin;C:\apache-maven-3.3.3\bin;C:\Program Files\QuickTime\QTSystem\;D:\Aplikacje\MATLAB\R2011a\runtime\win32;D:\Aplikacje\MATLAB\R2011a\bin;C:\Documents and Settings\KM\Pulpit\eclipseEE\eclipse;;. 
gru 26, 2015 10:56:52 AM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-nio-8080"] 
gru 26, 2015 10:56:52 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
INFO: Using a shared selector for servlet write/read 
gru 26, 2015 10:56:52 AM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-nio-8009"] 
gru 26, 2015 10:56:52 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
INFO: Using a shared selector for servlet write/read 
gru 26, 2015 10:56:52 AM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 1735 ms 
gru 26, 2015 10:56:52 AM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
gru 26, 2015 10:56:52 AM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/8.0.30 
gru 26, 2015 10:56:56 AM org.apache.jasper.servlet.TldScanner scanJars 
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
gru 26, 2015 10:56:56 AM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
gru 26, 2015 10:56:56 AM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 
gru 26, 2015 10:56:56 AM org.springframework.web.context.ContextLoader initWebApplicationContext 
INFO: Root WebApplicationContext: initialization started 
gru 26, 2015 10:56:57 AM org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh 
INFO: Refreshing Root WebApplicationContext: startup date [Sat Dec 26 10:56:57 CET 2015]; root of context hierarchy 
gru 26, 2015 10:56:57 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml] 
gru 26, 2015 10:56:58 AM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName 
INFO: Loaded JDBC driver: com.mysql.jdbc.Driver 
gru 26, 2015 10:56:58 AM org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean createNativeEntityManagerFactory 
INFO: Building JPA container EntityManagerFactory for persistence unit 'default' 
gru 26, 2015 10:56:58 AM org.springframework.web.context.support.XmlWebApplicationContext refresh 
WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/SystemException 
gru 26, 2015 10:56:58 AM org.springframework.web.context.ContextLoader initWebApplicationContext 
SEVERE: Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/SystemException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoClassDefFoundError: javax/transaction/SystemException 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at org.jboss.logging.Logger$1.run(Logger.java:2554) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2529) 
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2516) 
    at org.hibernate.jpa.internal.HEMLogging.messageLogger(HEMLogging.java:28) 
    at org.hibernate.jpa.internal.HEMLogging.messageLogger(HEMLogging.java:24) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<clinit>(EntityManagerFactoryBuilderImpl.java:100) 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:54) 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    ... 21 more 
Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) 
    ... 35 more 

gru 26, 2015 10:56:58 AM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/SystemException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.NoClassDefFoundError: javax/transaction/SystemException 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at org.jboss.logging.Logger$1.run(Logger.java:2554) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2529) 
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2516) 
    at org.hibernate.jpa.internal.HEMLogging.messageLogger(HEMLogging.java:28) 
    at org.hibernate.jpa.internal.HEMLogging.messageLogger(HEMLogging.java:24) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<clinit>(EntityManagerFactoryBuilderImpl.java:100) 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:54) 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    ... 21 more 
Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) 
    ... 35 more 

gru 26, 2015 10:56:58 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file 
gru 26, 2015 10:56:59 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/NewCatsProject-webapp] startup failed due to previous errors 
gru 26, 2015 10:56:59 AM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
gru 26, 2015 10:56:59 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-nio-8080"] 
gru 26, 2015 10:56:59 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-nio-8009"] 
gru 26, 2015 10:56:59 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 6346 ms 
gru 26, 2015 10:57:03 AM org.apache.catalina.core.StandardServer await 
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance. 
gru 26, 2015 10:57:03 AM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["http-nio-8080"] 
gru 26, 2015 10:57:03 AM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["ajp-nio-8009"] 
gru 26, 2015 10:57:03 AM org.apache.catalina.core.StandardService stopInternal 
INFO: Stopping service Catalina 
gru 26, 2015 10:57:03 AM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["http-nio-8080"] 
gru 26, 2015 10:57:03 AM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["ajp-nio-8009"] 
gru 26, 2015 10:57:03 AM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["http-nio-8080"] 
gru 26, 2015 10:57:03 AM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["ajp-nio-8009"] 

ответ

1

JPA, EntityManager является его частью, является уровень абстракции поверх простого JDBC и отвечает за обработку Object/Relational Mapping вещи. Я рекомендую использовать либо JDBC API, либо JPA, а не оба из них одновременно, как в вашем примере. И о вашей проблеме, она будет решена, если добавить JTA зависимости в вашем пути к классам:

<dependency> 
     <groupId>javax.transaction</groupId> 
     <artifactId>jta</artifactId> 
     <version>1.1</version> 
</dependency> 

И переименовать боб идентификатор из entityManager в entityManagerFactory

+0

я добавил это зависимые пакеты и теперь я получаю эту ошибку: " org.springframework.beans.factory.BeanCreationException: Ошибка создания bean-компонента с именем «transactionManager», определенным в ресурсе ServletContext [/WEB-INF/applicationContext.xml]: не удается разрешить ссылку на bean 'entityManagerFactory' при настройке bean-свойства 'entityManagerFactory'; Исключением является org.springframework.beans.factory.NoSuchBeanDefinitionException: никакой bean с именем «entityManagerFactory» не определен «.... –

Смежные вопросы