org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManagerorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:403)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)
org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)
javax.servlet.GenericServlet.init(GenericServlet.java:211)
org.apache.catalina.startup.Catalina.start(Catalina.java:551)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)一个测试例子报的错,下贴有APPLICATIONCONTTEXT.XML

解决方案 »

  1.   

    下面是applicationContext.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/cultural"/>
           
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref local="dataSource" />
    </property>

    <property name="mappingResources">
     <list>
    <value>com/cultural/DAO/impl/mapping/IsbsList.hbm.xml</value>
    </list>
    </property> <property name="hibernateProperties">
       <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
       </props>
    </property>
    </bean>

    <bean id="myDAO" class="com.cultural.DAO.impl.MyDAOImpl">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>

    <bean id="find" class="com.cultural.service.impl.FindImpl">

    </bean>

    <bean id="myServiceImplTarget" class="com.cultural.service.impl.MyServiceImpl">
    <property name="myDAO">
    <ref local="myDAO" />
    </property>
    <property name="fd">
    <ref local="find" />
    </property>
    </bean>

    </beans>
      

  2.   

    你在项目中没有包括J2EE的那些jar吧
      

  3.   

    把spring的lib包下的jta.jar文件添加到你项目的构建路径下就可以了。
      

  4.   

    或者拷贝到你项目的WEB-INF/lib目录下。
      

  5.   

    Error creating bean with name 'sessionFactory' defined in ServletContext resource创建这个sessionFactory bean失败了,看了你的配置,单看sessionFactory bean的配置是正确的,
    我想有两个原因,可能会导致错误
    第一:
        看你的dataSource bean是否配置正确,因为我没有使用过jndi,一直都是用jdbc,所以你要确定你的这个创建是正确的。
    第二:
        在你的ApplicatonContext.xml文件里面加上下面的配置
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate.HibernateTransactionManager">
            <property name="sessionFactory">
                  <ref local="sessionFactory"/>
            </property>
        </bean>
      

  6.   

    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
    明显的少包嘛
      

  7.   

    已解决,感谢  imA(男的不会,会的不男)