`
gary0416
  • 浏览: 334710 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用junit测试SSH项目以及常见错误解决方法

阅读更多
    public static BeanFactory factory = null;   
    public static UserDAOImpl userDAOImpl = null;   
    public static SessionFactory sessionFactory = null;   
    public static Session session = null;   
       
    @BeforeClass  
    public static void setUpBeforeClass() throws Exception {   
        try{   
            factory = new ClassPathXmlApplicationContext("spring/*.xml");   
            sessionFactory = (SessionFactory) factory.getBean("sessionFactory");   
            session = sessionFactory.openSession();   
            TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session));   
            userDAOImpl = (UserDAOImpl) factory.getBean("userDAO");   
        }catch(Exception e){   
            e.printStackTrace();   
        }   
    }

1.读取配置文件,根据项目具体情况更改文件位置

2.获取sessionFactory

3.使用spring提供的org.springframework.transaction.support.TransactionSynchronizationManager来代替org.springframework.orm.hibernate3.support.OpenSessionInViewFilter, 否则遇到懒加载会出错

4.开始测试吧:)

PS:如果不加try...catch,初始化异常不会显示,开始因为找不到哪错了浪费很多时间%>_<%

 

 

附上本人遇到的错误的解决方法:

1.No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here错误:

事务配置不对,或者加了@Transactional但没有加 <tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

spring事务配置例子

    <aop:config>  
        <aop:pointcut id="txServices" expression="execution(* ssh.service.*.*.*(..))"/>  
        <aop:advisor pointcut-ref="txServices" advice-ref="txAdvice"/>  
    </aop:config>  
       
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
        <tx:attributes>  
            <tx:method name="add*"/>  
            <tx:method name="save*"/>  
            <tx:method name="delete*"/>  
            <tx:method name="update*"/>  
            <tx:method name="edit*"/>  
            <tx:method name="upload*"/>  
            <tx:method name="download*"/>  
            <tx:method name="get*" read-only="true" timeout="30"/>  
            <tx:method name="search*" read-only="true"/>  
            <tx:method name="export*" read-only="true"/>  
        </tx:attributes>  
    </tx:advice>  
       
    <!-- 支持@Transient -->  
    <!--   
    <tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />  
    -->  
        
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource"/>  
    </bean> 

2.java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter错误:

本人使用的struts2.1.8+spring2.5.6+hibernate3.6.0,使用的cglib-2.2.jar,但spring带的是asm-2.2.3.jar,换成asm-3.2.jar后问题解决

 

1
0
分享到:
评论

相关推荐

    springmvc ssh通用的junit测试样例

    测试SSH项目时,通常会做以下几件事: 1. **配置测试环境**:设置Spring的ApplicationContext,加载测试所需的配置,如模拟数据库连接或使用内存数据库(如H2)。 2. **测试Struts2动作类**:创建Action的实例,模拟...

    ssh框架错误总结

    本文总结了SSH框架常见的错误和解决方法,以便开发者快速解决问题,提高开发效率。 一、Struts配置文件错误 在Struts框架中,struts-config.xml文件是核心配置文件,一旦配置错误,将导致应用程序无法正常运行。...

    SSH框架整合项目源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目源码提供了SSH整合的实践案例,特别适合初学者学习和理解Web应用的开发流程。 Struts2作为MVC(Model-View-...

    ssh2完整项目源代码

    6. **测试代码**:可能包含单元测试或集成测试,使用JUnit或其他测试框架编写,用于验证代码的功能。 7. **日志配置**:如log4j.properties或logback.xml,用于设置应用程序的日志记录级别和输出位置。 通过分析和...

    SSH框架整合模版,非常详细实用

    在实际项目中,SSH框架的整合不仅涉及到上述基础配置,还包括错误处理、国际化、权限控制等多个方面。理解每个组件的功能以及它们如何协同工作是实现高效、稳定应用的关键。同时,随着技术的发展,SSH已经被更现代的...

    简单的ssh整合项目epet

    在开发过程中,日志文件可以帮助追踪和调试问题,而JUnit测试可以帮助确保Service和DAO层的正确性。 7. **优点**:SSH框架组合提高了开发效率,降低了代码的耦合度,提供了事务管理、安全性控制等功能,便于维护和...

    SSH投票管理平台项目源码

    9. **测试与调试**:SSH项目通常使用JUnit进行单元测试,Mockito模拟协作对象,确保每个组件都能正常工作。Eclipse或IntelliJ IDEA等IDE提供了强大的调试工具,帮助开发者定位和修复问题。 通过学习和实践SSH投票...

    基于ssh的一个网站

    10. **测试与调试**:可能使用JUnit进行单元测试,确保代码的功能正确性;而Eclipse或NetBeans自带的调试工具可以帮助定位和修复问题。 以上就是基于SSH的网站开发所涵盖的关键技术点,它们共同构成了一个功能完善...

    一个社区网站,SSH做的

    8. **测试与调试**:单元测试、集成测试,使用如JUnit和Mockito等工具,以及如何使用日志进行问题排查。 9. **部署与运维**:如Tomcat服务器的配置、JVM调优、负载均衡等。 通过研究这个SSH框架的社区网站项目,...

    毕业设计 基于SSH框架的系统

    【标题】"基于SSH框架的系统"是一种常见的企业级应用开发模式,SSH分别代表Spring、Struts和Hibernate三个开源框架的首字母缩写。Spring作为核心的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...

    ssh框架的登陆注册

    JUnit可以用于测试Action和Service层,而数据库相关的测试可以借助Hibernate的Session模拟,或者使用数据库测试工具如DBUnit。 以上是SSH框架与Oracle数据库在登录注册场景中的核心知识点,通过理解并熟练掌握这些...

    SSh_Struts2_Test

    标题“SSh_Struts2_Test”暗示我们正在讨论一个与SSH(Spring、Struts2和Hibernate)集成框架相关的测试项目。SSH是Java开发中的常见Web应用程序框架组合,用于构建高效、模块化的应用。Struts2提供了MVC架构,...

    SSH中通用dao类

    在Java企业级开发中,SSH(Struts2、Spring、Hibernate)是一个常见的开源框架组合,用于构建高效、灵活且可扩展的Web应用程序。SSH框架整合了MVC模式、依赖注入和对象关系映射,大大简化了后端开发。在这个场景中,...

    SSH整合_学习蓝本

    7. **测试**:可能包含JUnit测试用例,用于验证业务逻辑和数据访问的正确性。 学习这个蓝本,初学者可以通过阅读代码和配置文件,了解SSH整合的具体实现步骤,同时也可以动手运行项目,加深对框架集成的理解。此外...

    毕业设计图书管理系统SSH

    9. **单元测试和集成测试**:使用JUnit等测试工具对系统各部分进行单元测试,确保每个组件的功能正确。同时,通过集成测试确保SSH框架各组件间的协同工作无误。 10. **性能优化**:考虑到系统可能面临的并发访问,...

    SSH整合需要的jar包整理

    SSH整合是Java开发中常见的技术栈,主要包括Spring、Struts2和Hibernate三个框架。这三个框架协同工作,可以构建出高效、灵活的企业级Web应用程序。在Eclipse这样的集成开发环境中进行整合,需要正确配置和导入相应...

    Java简单的SSH后台管理

    - **单元测试**:使用JUnit进行单元测试,确保代码质量。 - **性能优化**:合理配置数据库连接池,使用缓存技术如 Ehcache 提升系统性能。 综上所述,"Java简单的SSH后台管理"项目是一个基于Java的后台管理系统,...

    SSH框架整合小例子

    5. **测试和运行**:最后,编写JUnit测试确保所有组件都能正常工作,然后运行应用,通过浏览器发送请求查看结果。 **注意事项**: 1. 版本兼容性:确保Spring、Struts2和Hibernate版本之间兼容,避免因版本不匹配...

    ssh+jbpm流程例子jar包2

    7. **单元测试和集成测试**:为了确保示例的正确性,项目可能包含针对SSH和jbpm组件的测试用例,如使用JUnit进行单元测试,使用Mockito模拟对象交互,以及使用Arquillian进行集成测试。 8. **部署和运行**:最后,...

    测试理论--极光

    3. **测试工具**:提到了多种用于不同类型测试的工具,如LoadRunner、JMeter(性能测试),AppScan(安全测试),Selenium(自动化测试),JUnit、EasyMock(单元测试),Eclemma/JaCoCo(测试覆盖率),QUnit...

Global site tag (gtag.js) - Google Analytics