整合的时候struts和spring没问题,加入hibernate就出现下面问题!
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet.init() for servlet action threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)
root cause java.lang.NoClassDefFoundError: Could not initialize class org.springframework.web.struts.ContextLoaderPlugIn
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
java.lang.Class.newInstance0(Class.java:355)
java.lang.Class.newInstance(Class.java:308)
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1142)
org.apache.struts.action.ActionServlet.init(ActionServlet.java:473)
javax.servlet.GenericServlet.init(GenericServlet.java:211)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/login">
</property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/login/models/TbUser.hbm.xml</value></list>
</property>
</bean>
<!-- ********************** DAO ********************** -->
<bean id="usersDAO" class="com.login.dao.UsersDAO">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- ********************** spring 事务管理 ********************** -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- ********************** 事务代理 ********************** -->
<bean id="usersDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="target">
<ref local="usersDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="is*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- ********************** Action ********************** -->
<bean name="/login"
class="com.login.struts.action.LoginAction">
<property name="usersDao">
<ref bean="usersDAOProxy"/>
</property>
</bean>
</beans>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="loginForm"
type="com.login.struts.form.LoginForm" /> </form-beans> <global-exceptions />
<global-forwards />
<action-mappings>
<action path="/login"
input="/login.jsp"
name="loginForm"
attribute="loginForm"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"> <forward name="success" path="/success.jsp" />
<forward name="fail" path="/login.jsp" />
</action> </action-mappings> <message-resources
parameter="com.login.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
</plug-in>
</struts-config>
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet.init() for servlet action threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)
root cause java.lang.NoClassDefFoundError: Could not initialize class org.springframework.web.struts.ContextLoaderPlugIn
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
java.lang.Class.newInstance0(Class.java:355)
java.lang.Class.newInstance(Class.java:308)
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1142)
org.apache.struts.action.ActionServlet.init(ActionServlet.java:473)
javax.servlet.GenericServlet.init(GenericServlet.java:211)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/login">
</property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/login/models/TbUser.hbm.xml</value></list>
</property>
</bean>
<!-- ********************** DAO ********************** -->
<bean id="usersDAO" class="com.login.dao.UsersDAO">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- ********************** spring 事务管理 ********************** -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- ********************** 事务代理 ********************** -->
<bean id="usersDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="target">
<ref local="usersDAO"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="is*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- ********************** Action ********************** -->
<bean name="/login"
class="com.login.struts.action.LoginAction">
<property name="usersDao">
<ref bean="usersDAOProxy"/>
</property>
</bean>
</beans>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="loginForm"
type="com.login.struts.form.LoginForm" /> </form-beans> <global-exceptions />
<global-forwards />
<action-mappings>
<action path="/login"
input="/login.jsp"
name="loginForm"
attribute="loginForm"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"> <forward name="success" path="/success.jsp" />
<forward name="fail" path="/login.jsp" />
</action> </action-mappings> <message-resources
parameter="com.login.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
</plug-in>
</struts-config>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- 配置数据源 spring内置 -->
<bean id="dateSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/netctoss</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>0</value>
</property>
</bean>
<!-- 配置SessionFactory -->
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dateSource" />
<property name="mappingResources">
<list>
<value>com/tarena/domain/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<!-- 配置事物管理器 -->
<bean id="myTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"></property>
</bean>
<!-- 配置Dao -->
<bean id="abstractDAO" abstract="true">
<property name="sessionFactory" ref="mySessionFactory" />
</bean>
<bean id="userDAO" class="com.tarena.dao.impl.UserDAOImpl" parent="abstractDAO"/>
<!-- 配置Service --> <bean id="userSeviceTarget" class="com.tarena.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
<!-- 配置事务代理 -->
<bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="myTransactionManager"></property>
<property name="target" ref="userSeviceTarget"></property>
<property name="transactionAttributes">
<props>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean> <!-- user 模块 -->
<bean name="/user/acctadd" class="com.tarena.action.UserAction">
<property name="us" ref="userService" />
</bean>
</beans>
user-struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<data-sources />
<form-beans>
<form-bean name="userAddForm" type="com.tarena.forms.UserAddForm"/>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/index" type="com.tarena.action.UserAction"
parameter="index">
<forward name="success" path="/WEB-INF/jsp/user/index.jsp"
module="" />
</action>
<action path="/showAcctadd" type="com.tarena.action.UserAction"
parameter="showAcctadd">
<forward name="success" path="/WEB-INF/jsp/user/acctadd.jsp"
contextRelative="true" module="">
</forward>
</action>
<action path="/showAcctbrowse" type="com.tarena.action.UserAction"
parameter="showAcctbrowse">
<forward name="success"
path="/WEB-INF/jsp/user/acctbrowse.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showAcctdeleteform" type="com.tarena.action.UserAction"
parameter="showAcctdeleteform">
<forward name="success"
path="/WEB-INF/jsp/user/acctdeleteform.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showAcctupdateform" type="com.tarena.action.UserAction"
parameter="showAcctupdateform">
<forward name="success"
path="/WEB-INF/jsp/user/acctupdateform.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showAcctupdate" type="com.tarena.action.UserAction"
parameter="showAcctupdate">
<forward name="success"
path="/WEB-INF/jsp/user/acctupdate.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showBussadd" type="com.tarena.action.UserAction"
parameter="showBussadd">
<forward name="success" path="/WEB-INF/jsp/user/bussadd.jsp"
contextRelative="true" module="">
</forward>
</action>
<action path="/showBussbrowse" type="com.tarena.action.UserAction"
parameter="showBussbrowse">
<forward name="success"
path="/WEB-INF/jsp/user/bussbrowse.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showBussdeleteform" type="com.tarena.action.UserAction"
parameter="showBussdeleteform">
<forward name="success"
path="/WEB-INF/jsp/user/bussdeleteform.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showBussupdateform" type="com.tarena.action.UserAction"
parameter="showBussupdateform">
<forward name="success"
path="/WEB-INF/jsp/user/bussupdateform.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/showBussupdate" type="com.tarena.action.UserAction"
parameter="showBussupdate">
<forward name="success"
path="/WEB-INF/jsp/user/bussupdate.jsp" contextRelative="true" module="">
</forward>
</action>
<action path="/acctadd" type="com.tarena.action.UserAction" parameter="acctadd" name="userAddForm"
attribute="acctaddform" validate="true" scope="request" input="/showAcctadd.do">
<forward name="success" path="/showAcctadd.do"></forward>
</action>
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor" /> <message-resources parameter="ApplicationResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
</struts-config>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">
<filter>
<filter-name>f1</filter-name>
<filter-class>com.tarena.fiter.EncodingFiter</filter-class>
</filter>
<filter-mapping>
<filter-name>f1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-config/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener> <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>config/user</param-name>
<param-value>/WEB-INF/user-struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
你这样配试试
applicationContext.xml如果在src目录下的话直接用classpath:指定路径。
如果在web-inf下,就正常写就可以了。
试下。