web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <context-param>   <param-name>contextConfigLocation</param-name>   <param-value>classpath:dao.xml</param-value>  </context-param>   <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>    <listener>   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener></web-app>

解决方案 »

  1.   

    spring.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>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@localhost:1521:XE</value> </property> <property name="username"> <value>briup</value> </property> <property name="password"> <value>briup</value> </property> </bean> <!-- 配置sessionFactory工厂让spring管理 --> <bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mappingResources"> <list> <value>com/briup/woss/pojo/Admins.hbm.xml</value> <value>com/briup/woss/pojo/Permission.hbm.xml</value> <value>com/briup/woss/pojo/Products.hbm.xml</value> <value>com/briup/woss/pojo/Productstype.hbm.xml</value> <value>com/briup/woss/pojo/Roles.hbm.xml</value> <value>com/briup/woss/pojo/Users.hbm.xml</value> <value>com/briup/woss/pojo/UserServices.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> <!-- 事物管理器hibernateTransactionManager --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 配置hibernateTemplate模板 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 配置dao成对象 --> <bean id="billingDao" class="com.briup.woss.dao.impl.BillingDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="businessDao" class="com.briup.woss.dao.impl.BusinessDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="managerDao" class="com.briup.woss.dao.impl.ManagerDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="productDao" class="com.briup.woss.dao.impl.ProductDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="systemDao" class="com.briup.woss.dao.impl.SystemDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="userDao" class="com.briup.woss.dao.impl.UserDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <!-- 事物的代理工厂bean --> <bean id="proxyTxDefintion" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="txManager"></property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED,-Exception</prop> </props> </property> </bean> <!-- 代理serviceBean --> <bean id="billingService" parent="proxyTxDefintion"> <property name="target"> <bean class="com.briup.woss.service.impl.BillingServiceImpl"> <property name="billingDao" ref="billingDao"></property> </bean> </property> </bean> <bean id="businessService" parent="proxyTxDefintion"> <property name="target"> <bean class="com.briup.woss.service.impl.BusinessServiceImpl"> <property name="businessDao" ref="businessDao"></property> </bean> </property> </bean> <bean id="managerService" parent="proxyTxDefintion"> <property name="target"> <bean class="com.briup.woss.service.impl.ManagerServiceImpl"> <property name="managerDao" ref="managerDao"></property> </bean> </property> </bean> <bean id="productService" parent="proxyTxDefintion"> <property name="target"> <bean class="com.briup.woss.service.impl.ProductServiceImpl"> <property name="productDao" ref="productDao"></property> </bean> </property> </bean> <bean id="systemService" parent="proxyTxDefintion"> <property name="target"> <bean class="com.briup.woss.service.impl.SystemServiceImpl"> <property name="systemDao" ref="systemDao"></property> </bean> </property> </bean> <bean id="service" parent="proxyTxDefintion"> <property name="target"> <bean class="com.briup.woss.service.impl.UserServieImpl"> <property name="userDao" ref="userDao"></property> </bean> </property> </bean></beans>
      

  2.   

    struts2.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <!-- 开启自动由spring来管理action对象, struts2和spring自动集成 --> <constant name="struts.objectFactory" value="spring"></constant>
    <package name="action" extends="struts-default" namespace="/action">
    <action name="user" class="com.briup.woss.web.action.UserAction" method="login">
    <result name="success">/index.jsp</result>
    </action>
    </package>
    </struts>
      

  3.   

    log4j.properties### direct log messages to stdout ###
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%nlog4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=log.txt
    log4j.appender.file.Append=true
    log4j.appender.file.MaxFileSize=1024KB 
    log4j.appender.file.MaxBackupIndex=10 
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%nlog4j.rootLogger=info, stdout