1.web.xml  <?xml version="1.0" encoding="UTF-8"?>   
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"    
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"    
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
    <context-param>   
        <param-name>contextConfigLocation</param-name>   
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>   
    </context-param>   
    <resource-ref>   
        <description>SqlServer Datasource example</description>   
        <res-ref-name>jdbc/StudentManager</res-ref-name>   
        <res-type>javax.sql.DataSource</res-type>   
        <res-auth>Container</res-auth>   
    </resource-ref>   
    <filter>   
        <filter-name>hibernateFilter</filter-name>   
        <filter-class>    
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter    
            </filter-class>   
        <init-param>   
            <param-name>singleSession</param-name>   
            <param-value>true</param-value>   
        </init-param>   
    </filter>   
    <filter-mapping>   
        <filter-name>hibernateFilter</filter-name>   
        <url-pattern>*.do</url-pattern>   
    </filter-mapping>   
    <servlet>   
        <servlet-name>SpringContextServlet</servlet-name>   
        <servlet-class>   
            org.springframework.web.context.ContextLoaderServlet</servlet-class>   
        <load-on-startup>1</load-on-startup>   
    </servlet>   
    <servlet>   
        <servlet-name>SpringLog4jConfigServlet</servlet-name>   
        <servlet-class>   
            org.springframework.web.util.Log4jConfigServlet   
        </servlet-class>   
    </servlet>   
    <servlet>   
        <servlet-name>web</servlet-name>   
        <servlet-class>   
            org.springframework.web.servlet.DispatcherServlet   
        </servlet-class>   
    </servlet>   
    <servlet>   
        <servlet-name>action</servlet-name>   
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>   
        <init-param>   
            <param-name>config</param-name>   
            <param-value>/WEB-INF/struts-config.xml</param-value>   
        </init-param>   
        <init-param>   
            <param-name>debug</param-name>   
            <param-value>2</param-value>   
        </init-param>   
        <init-param>   
            <param-name>detail</param-name>   
            <param-value>2</param-value>   
        </init-param>   
        <load-on-startup>2</load-on-startup>   
    </servlet>   
    <servlet-mapping>   
        <servlet-name>action</servlet-name>   
        <url-pattern>*.do</url-pattern>   
    </servlet-mapping>   
    <welcome-file-list>   
        <welcome-file>/WEB-INF/jsp/index.jsp</welcome-file>   
    </welcome-file-list>   
    <taglib>   
        <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>   
        <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>   
    </taglib>   
    <taglib>   
        <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>   
        <taglib-location>/WEB-INF/struts-html.tld</taglib-location>   
    </taglib>   
    <taglib>   
        <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>   
        <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>   
    </taglib>   
    <taglib>   
        <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>   
        <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>   
    </taglib>   
</web-app>  <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/StudentManager</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class> 
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter 
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>SpringLog4jConfigServlet</servlet-name>
<servlet-class>
org.springframework.web.util.Log4jConfigServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>web</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
</web-app>
 

解决方案 »

  1.   

    2.struts-config.xml 
     <?xml version="1.0" encoding="UTF-8" ?>   
    <!DOCTYPE struts-config PUBLIC   
              "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"  
              "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">   
    <struts-config>   
        <data-sources />   
        <form-beans>   
            <form-bean name="people" type="domain.People"></form-bean>   
        </form-beans>   
        <global-exceptions />   
        <global-forwards />   
        <action-mappings>   
            <action path="/savePeople" name="people" type="action.SavePeopleAction" scope="session" parameter="method">   
                <forward name="success" path="/listPeople.do"></forward>   
            </action>   
            <action path="/listPeople" name="people" type="action.ListPeopleAction">   
                <forward name="success" path="/studentList.jsp"></forward>   
            </action>   
            <action path="/deletePeople" name="people"    
                type="action.DeletePeopleAction">   
                <forward name="success" path="/studentList.jsp"></forward>   
            </action>   
            <action path="/editPeople" name="people" type="action.EditPeopleAction">   
                <forward name="success" path="/editStudent.jsp"></forward>   
            </action>   
            <action path="/editPeopleDo" name="people"    
                type="action.EditPeopleActionDo">   
                <forward name="success" path="/studentList.jsp"></forward>   
            </action>   
            <action path="/searchPeople" name="people"    
                type="action.SearchPeopleAction">   
                <forward name="success" path="/searchList.jsp"></forward>   
            </action>   
            <action path="/test" name="people" type="action.Test"></action>   
        </action-mappings>   
        <controller locale="true" />   
        <message-resources parameter="" />   
        <!--   
        <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">   
            <set-property property="contextConfigLocation"    
                value="/WEB-INF/applicationContext.xml" />   
        </plug-in>   
        -->   
    </struts-config>  <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <struts-config>
    <data-sources />
    <form-beans>
    <form-bean name="people" type="domain.People"></form-bean>
    </form-beans>
    <global-exceptions />
    <global-forwards />
    <action-mappings>
    <action path="/savePeople" name="people" type="action.SavePeopleAction" scope="session" parameter="method">
    <forward name="success" path="/listPeople.do"></forward>
    </action>
    <action path="/listPeople" name="people" type="action.ListPeopleAction">
    <forward name="success" path="/studentList.jsp"></forward>
    </action>
    <action path="/deletePeople" name="people" 
    type="action.DeletePeopleAction">
    <forward name="success" path="/studentList.jsp"></forward>
    </action>
    <action path="/editPeople" name="people" type="action.EditPeopleAction">
    <forward name="success" path="/editStudent.jsp"></forward>
    </action>
    <action path="/editPeopleDo" name="people" 
    type="action.EditPeopleActionDo">
    <forward name="success" path="/studentList.jsp"></forward>
    </action>
    <action path="/searchPeople" name="people" 
    type="action.SearchPeopleAction">
    <forward name="success" path="/searchList.jsp"></forward>
    </action>
    <action path="/test" name="people" type="action.Test"></action>
    </action-mappings>
    <controller locale="true" />
    <message-resources parameter="" />
    <!--
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" 
    value="/WEB-INF/applicationContext.xml" />
    </plug-in>
    -->
    </struts-config>
      

  2.   

    3.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>   
        <!--Struts Infomation-->   
        <bean id="transactionManager"    
            class="org.springframework.orm.hibernate3.HibernateTransactionManager" depends-on="sessionFactory">   
            <property name="sessionFactory">   
                <ref bean="sessionFactory"/>   
            </property>   
        </bean>   
        <bean id="studentManager"    
            class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">   
            <property name="transactionManager">   
                <ref bean="transactionManager"></ref>   
            </property>   
            <property name="target">   
                <bean class="service.StudentManagerImpl">   
                    <property name="studentDAO">   
                        <ref bean="StudentDAO"/>   
                    </property>   
                </bean>   
            </property>   
            <property name="transactionAttributes">   
                <props>   
                    <prop key="save*">PROPAGATION_REQUIRED</prop>   
                    <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>   
                    <prop key="delete*">PROPAGATION_REQUIRED</prop>   
                    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>   
                    <prop key="edit*">PROPAGATION_REQUIRED</prop>   
                    <prop key="search*">PROPAGATION_REQUIRED</prop>   
                </props>   
            </property>   
            <property name="proxyTargetClass">   
                <value>true</value>   
            </property>   
        </bean>   
           
        <!--Hibernate Infomation-->   
        <bean id="dataSource"    
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">   
            <property name="driverClassName">   
                <value>com.mysql.jdbc.Driver</value>   
            </property>   
            <property name="url">   
                <value>jdbc:mysql://localhost:3306/dbjee</value>   
            </property>   
            <property name="username">   
                <value>root</value>   
            </property>   
            <property name="password">   
                <value>123456</value>   
            </property>   
        </bean>   
        <!--   
        <bean id="TransactionManager"    
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   
            <property name="dataSource">   
                <ref bean="dataSource"/>   
            </property>   
        </bean>   
        -->   
        <bean id="sessionFactory"    
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
            <property name="dataSource">   
                <ref local="dataSource" />   
            </property>   
            <property name="hibernateProperties">   
                <props>   
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>   
                    <prop key="hibernate.show_sql">true</prop>   
                    <prop key="hibernate.cache.use_query_cache">true</prop>   
                    <prop key="hibernate.cache.provider_class">    
                        org.hibernate.cache.HashtableCacheProvider</prop>   
                </props>   
            </property>   
            <!--     
            <property name="mappingDirectoryLocations">   
                <list>   
                    <value>classpath:/domain</value>   
                </list>   
            </property>-->   
            <property name="mappingResources">   
                <list>   
                    <value>domain/People.hbm.xml</value>   
                </list>   
            </property>   
        </bean>   
        <bean id="StudentDAO" class="dao.StudentDAOImpl">   
            <property name="sessionFactory">   
                <ref local="sessionFactory" />   
            </property>   
        </bean>   
    </beans>  <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    <!--Struts Infomation-->
    <bean id="transactionManager" 
    class="org.springframework.orm.hibernate3.HibernateTransactionManager" depends-on="sessionFactory">
    <property name="sessionFactory">
    <ref bean="sessionFactory"/>
    </property>
    </bean>
    <bean id="studentManager" 
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager">
    <ref bean="transactionManager"></ref>
    </property>
    <property name="target">
    <bean class="service.StudentManagerImpl">
    <property name="studentDAO">
    <ref bean="StudentDAO"/>
    </property>
    </bean>
    </property>
    <property name="transactionAttributes">
    <props>
    <prop key="save*">PROPAGATION_REQUIRED</prop>
    <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="delete*">PROPAGATION_REQUIRED</prop>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="edit*">PROPAGATION_REQUIRED</prop>
    <prop key="search*">PROPAGATION_REQUIRED</prop>
    </props>
    </property>
    <property name="proxyTargetClass">
    <value>true</value>
    </property>
    </bean>

    <!--Hibernate Infomation-->
    <bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
    </property>
    <property name="url">
    <value>jdbc:mysql://localhost:3306/dbjee</value>
    </property>
    <property name="username">
    <value>root</value>
    </property>
    <property name="password">
    <value>123456</value>
    </property>
    </bean>
    <!--
    <bean id="TransactionManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    </bean>
    -->
    <bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref local="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.cache.use_query_cache">true</prop>
    <prop key="hibernate.cache.provider_class"> 
    org.hibernate.cache.HashtableCacheProvider</prop>
    </props>
    </property>
    <!--  
            <property name="mappingDirectoryLocations">
                <list>
                    <value>classpath:/domain</value>
                </list>
            </property>-->
    <property name="mappingResources">
    <list>
    <value>domain/People.hbm.xml</value>
    </list>
    </property>
    </bean>
    <bean id="StudentDAO" class="dao.StudentDAOImpl">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>
    </beans>
      

  3.   

    4.People.hbm.xml 
     <?xml version="1.0" encoding="utf-8"?>   
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
    <!--    
        Mapping file autogenerated by MyEclipse - Hibernate Tools   
    -->   
    <hibernate-mapping package="domain">   
        <class name="People" table="people" >   
            <id name="id" type="java.lang.Integer">   
                <column name="id" />   
                <generator class="increment"></generator>   
            </id>   
            <property name="name" type="java.lang.String">   
                <column name="name" length="100" />   
            </property>   
            <property name="location" type="java.lang.String">   
                <column name="location" length="100" />   
            </property>   
        </class>   
    </hibernate-mapping>  <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse - Hibernate Tools
    -->
    <hibernate-mapping package="domain">
    <class name="People" table="people" >
    <id name="id" type="java.lang.Integer">
    <column name="id" />
    <generator class="increment"></generator>
    </id>
    <property name="name" type="java.lang.String">
    <column name="name" length="100" />
    </property>
    <property name="location" type="java.lang.String">
    <column name="location" length="100" />
    </property>
    </class>
    </hibernate-mapping>
    附件里是我引入的jar包。 
    希望各位能帮帮忙,困扰我2天,一直出不来。 
      

  4.   

    最后把启动Tomcat时报的错误也贴出来。 
     严重: Context initialization failed   
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager   
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager   
        at java.lang.Class.getDeclaredMethods0(Native Method)   
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)   
        at java.lang.Class.getDeclaredMethods(Unknown Source)   
        at java.beans.Introspector$1.run(Unknown Source)   
        at java.security.AccessController.doPrivileged(Native Method)   
        at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)   
        at java.beans.Introspector.getTargetMethodInfo(Unknown Source)   
        at java.beans.Introspector.getBeanInfo(Unknown Source)   
        at java.beans.Introspector.getBeanInfo(Unknown Source)   
        at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:149)   
        at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:85)   
        at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:234)   
        at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:192)   
        at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:176)   
        at org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:129)   
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:491)   
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:366)   
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)   
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)   
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:330)   
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)   
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)   
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283)   
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321)   
        at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)   
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252)   
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190)   
        at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)   
        at javax.servlet.GenericServlet.init(GenericServlet.java:212)   
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)   
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)   
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)   
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)   
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)   
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)   
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)   
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)   
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)   
      

  5.   

    javax/transaction/TransactionManager  少了JAR包~JTA.JAR
      

  6.   

    放入jta.jar就行了,找找吧,spring里面应该有,要不就是Hibernate里面有
      

  7.   

    你不坊这样, 在你的代码中定义一个TransactionManager, 看能不能import这个类, 要是不行, 就是缺少包. 
      

  8.   


     严重: Context initialization failed   
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager   
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager检查错误是一个漫长的过程,当然,楼主做到了ssh,说实话,我现在最多可以说我能够做出struts+spring,队hibernate没有太多的信心,虽然我很想用它的数据处理能力,试验了好久,还是有点心有余,可能没有一心一意的做吧,不过还是了解不少!
    第一,可能楼主缺少了包,或者是包冲突,
    其次,楼主配置可能有问题,具体的,找找,
    最后说说,你这个做好了,程序都没有问题,因为还运行不了吧,所以都是前期工作还有问题,所以检查一下过程中少了什么东西。
      

  9.   

    你不坊这样, 在你的代码中定义一个TransactionManager, 看能不能import这个类, 要是不行, 就是缺少包.