spring3.1.1与hibernate4.1.5与struts2.3.4集成

spring3.1.1与hibernate4.1.5与struts2 2.3.4集成

 

1. 使用myeclipse新建一个web工程。

 

2. 然后把spring3.1.1 , hibernate4.1.5 , struts2.3.4的jar包放到web工程的WEB-INF/lib目录下。

 

jar包如下:

 

spring3.1.1 

 

org.springframework.aop-3.1.1.RELEASE.jar

org.springframework.asm-3.1.1.RELEASE.jar

org.springframework.aspects-3.1.1.RELEASE.jar

org.springframework.beans-3.1.1.RELEASE.jar

org.springframework.context-3.1.1.RELEASE.jar

org.springframework.context.support-3.1.1.RELEASE.jar

org.springframework.core-3.1.1.RELEASE.jar

org.springframework.expression-3.1.1.RELEASE.jar

org.springframework.instrument-3.1.1.RELEASE.jar

org.springframework.jdbc-3.1.1.RELEASE.jar

org.springframework.orm-3.1.1.RELEASE.jar

org.springframework.oxm-3.1.1.RELEASE.jar

org.springframework.test-3.1.1.RELEASE.jar

org.springframework.transaction-3.1.1.RELEASE.jar

org.springframework.web-3.1.1.RELEASE.jar

org.springframework.web.portlet-3.1.1.RELEASE.jar

org.springframework.web.servlet-3.1.1.RELEASE.jar

org.springframework.web.struts-3.1.1.RELEASE.jar

 

还需要第三方的信依懒包(需要自己手动下载),主要有下列jar包:

 

aopalliance.jar

aspectjweaver.jar

commons-dbcp-1.4.jar

commons-pool-1.6.jar

cglib-nodep-2.1_3.jar

commons-logging-1.1.1.jar

asm-3.3.1.jar

asm-commons-3.3.1.jar

asm-util-3.3.1.jar

 

 

hibernate4.1.5

 

antlr-2.7.7.jar dom4j-1.6.1.jar

hibernate-commons-annotations-4.0.1.Final.jar

hibernate-core-4.1.5.Final.jar

hibernate-jpa-2.0-api-1.0.1.

Final.jar javassist-3.15.0-GA.jar

jboss-logging-3.1.0.GA.jar

jboss-transaction-api_1.1_spec-1.0.0.Final.jar

 

 

struts2.3.4

 

xwork-core-2.3.4.jar

commons-fileupload-1.2.2.jar

freemarker-2.3.19.jar

ognl-3.0.5.jar

struts2-core-2.3.4.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

struts2-spring-plugin-2.3.4.jar

 

3. 设置web.xml , beans.xml , struts.xml文件

 

web.xml

 

<?xml version="1.0" encoding="UTF-8"?>

Xml代码   收藏代码
  1. <web-app version="2.5"   
  2.     xmlns="http://java.sun.com/xml/ns/javaee"   
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.       
  7.   <welcome-file-list>  
  8.     <welcome-file>index.jsp</welcome-file>  
  9.   </welcome-file-list>  
  10.    
  11.        
  12.   <filter>  
  13.     <filter-name>struts2</filter-name>  
  14.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  15.   </filter>  
  16.   
  17.   <filter-mapping>  
  18.       <filter-name>struts2</filter-name>  
  19.       <url-pattern>/*</url-pattern>  
  20.   </filter-mapping>    
  21.     
  22.   <listener>  
  23.       <listener-class>  
  24.           org.springframework.web.context.ContextLoaderListener  
  25.       </listener-class>  
  26.   </listener>  
  27.     
  28.   <context-param>  
  29.       <param-name>contextConfigLocation</param-name>  
  30.       <param-value>classpath:/beans.xml</param-value>  
  31.   </context-param>  
  32.     
  33. </web-app>   

 

beans.xml

 

 

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.         http://www.springframework.org/schema/context    
  9.         http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  10.         http://www.springframework.org/schema/tx   
  11.         http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
  12.         http://www.springframework.org/schema/aop   
  13.         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  14.         ">  
  15.   
  16.     <context:annotation-config />  
  17.     <context:component-scan base-package="com.buy" />  
  18.   
  19.   
  20.   
  21.     <bean id="userDaoImpl" class="com.buy.user.UserDAOImpl">  
  22.         <!-- <property name="dataSource" ref="dataSource"></property> -->  
  23.     </bean>  
  24.     <bean id="useService" class="com.buy.user.UserServiceImpl">  
  25.         <property name="userDAO" ref="userDaoImpl" />  
  26.     </bean>  
  27.       
  28.     <bean id="userAction" class="com.buy.user.UserAction" scope="singleton" autowire="byName">  
  29.         <property name="userService" ref="useService"></property>  
  30.     </bean>  
  31.   
  32.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
  33.         destroy-method="close">  
  34.         <property name="driverClassName" value="com.mysql.jdbc.Driver">  
  35.         </property>  
  36.         <property name="url" value="jdbc:mysql://localhost:3306/buy360">  
  37.         </property>  
  38.         <property name="username" value="root"></property>  
  39.         <property name="password" value="root"></property>  
  40.     </bean>  
  41.   
  42.   
  43.     <bean id="sessionFactory"  
  44.         class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
  45.         <property name="dataSource" ref="dataSource"></property>  
  46.         <property name="annotatedClasses">  
  47.             <list>  
  48.                 <value>com.buy.user.Event</value>  
  49.             </list>  
  50.         </property>  
  51.         <property name="hibernateProperties">  
  52.             <value>  
  53.                 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect  
  54.                 hibernate.show_sql=true  
  55.                 hibernate.current_session_context_class=thread  
  56.             </value>  
  57.         </property>  
  58.           
  59.     </bean>  
  60.   
  61.     <bean id="transactionManager"  
  62.         class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
  63.         <property name="sessionFactory" ref="sessionFactory"></property>  
  64.     </bean>  
  65.   
  66.   
  67.   
  68.   
  69.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  70.         <tx:attributes>  
  71.             <tx:method name="ad*" propagation="REQUIRED"/>  
  72.         </tx:attributes>  
  73.     </tx:advice>  
  74.       
  75.       
  76. <!--        
  77.     <aop:config expose-proxy="true">  
  78.         <aop:pointcut id="txPointcut" expression="execution(* com.buy.user..*.*(..))" />  
  79.         <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />  
  80.     </aop:config>  
  81. -->   
  82. </beans>  

 

 

    struts.xml

 

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  5.   
  6. <struts>  
  7.     <constant name="struts.devMode" value="true" />  <!-- 设置开发模式 -->  
  8.     <constant name="struts.action.extension" value="action,do"></constant>  
  9.     <!-- <constant name="struts.objectFactory" value="spring" /> -->  
  10.       
  11.     <package name="default" namespace="/" extends="struts-default">  
  12.           
  13.         <action name="test" class="<strong>userAction</strong>" method="validate">     
  14.             <result>test.jsp</result>      
  15.         </action>  
  16.           
  17.     </package>  
  18.       
  19.   
  20. </struts>  
 

 

    其中struts.xml黑体部分的  "userAction"  一定要是beans.xml文件中对应的bean 的id名字,如:

 

 

Java代码   收藏代码
  1. <bean id="<strong>userAction</strong>" class="com.buy.user.UserAction" scope="singleton" autowire="byName">  
  2.         <property name="userService" ref="useService"></property>  
  3. </bean>  

 

    要不然会出现下列错误:

 

 

Java代码   收藏代码
  1. Struts Problem Report  
  2.   
  3. Struts has detected an unhandled exception:  
  4.   
  5. Messages:     
  6. File:   com/buy/user/UserAction.java  
  7. Line number:    127  
  8. Stacktraces  
  9.   
  10. java.lang.NullPointerException  
  11.     com.buy.user.UserAction.validate(UserAction.java:127)  
  12.     sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  13.     sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  14.     sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  15.     java.lang.reflect.Method.invoke(Method.java:597)  
  16.     com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)  
  17.     com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)  
  18.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)  
  19.     org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)  
  20.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  21.     com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)  
  22.     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)  
  23.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  24.     com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)  
  25.     org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)  
  26.     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)  
  27.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  28.     com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)  
  29.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  30.     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)  
  31.     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)  
  32.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  33.     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)  
  34.     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)  
  35.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  36.     com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)  
  37.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  38.     org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)  
  39.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  40.     org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)  
  41.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  42.     org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)  
  43.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  44.     com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)  
  45.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  46.     com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)  
  47.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  48.     com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)  
  49.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  50.     com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)  
  51.     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)  
  52.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  53.     com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)  
  54.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  55.     org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)  
  56.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  57.     com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)  
  58.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  59.     com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)  
  60.     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)  
  61.     org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)  
  62.     org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)  
  63.     org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)  
  64.     org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)  
  65.     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)  
  66.     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
  67.     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)  
  68.     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)  
  69.     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)  
  70.     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  
  71.     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  
  72.     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)  
  73.     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)  
  74.     org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)  
  75.     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)  
  76.     java.lang.Thread.run(Thread.java:662)  
  77.       
  78. You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set:  
  79.   
  80.   struts.devMode=false  
  81. in your WEB-INF/classes/struts.properties file.  
 

 

  经测试可以通过运行,在集成中的过程中遇到了不少错误 , 欢迎大家一起来讨论学习。实现代码就没有贴出来,主要是配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值