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后问题解决
分享到:
相关推荐
测试SSH项目时,通常会做以下几件事: 1. **配置测试环境**:设置Spring的ApplicationContext,加载测试所需的配置,如模拟数据库连接或使用内存数据库(如H2)。 2. **测试Struts2动作类**:创建Action的实例,模拟...
本文总结了SSH框架常见的错误和解决方法,以便开发者快速解决问题,提高开发效率。 一、Struts配置文件错误 在Struts框架中,struts-config.xml文件是核心配置文件,一旦配置错误,将导致应用程序无法正常运行。...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目源码提供了SSH整合的实践案例,特别适合初学者学习和理解Web应用的开发流程。 Struts2作为MVC(Model-View-...
6. **测试代码**:可能包含单元测试或集成测试,使用JUnit或其他测试框架编写,用于验证代码的功能。 7. **日志配置**:如log4j.properties或logback.xml,用于设置应用程序的日志记录级别和输出位置。 通过分析和...
在实际项目中,SSH框架的整合不仅涉及到上述基础配置,还包括错误处理、国际化、权限控制等多个方面。理解每个组件的功能以及它们如何协同工作是实现高效、稳定应用的关键。同时,随着技术的发展,SSH已经被更现代的...
在开发过程中,日志文件可以帮助追踪和调试问题,而JUnit测试可以帮助确保Service和DAO层的正确性。 7. **优点**:SSH框架组合提高了开发效率,降低了代码的耦合度,提供了事务管理、安全性控制等功能,便于维护和...
9. **测试与调试**:SSH项目通常使用JUnit进行单元测试,Mockito模拟协作对象,确保每个组件都能正常工作。Eclipse或IntelliJ IDEA等IDE提供了强大的调试工具,帮助开发者定位和修复问题。 通过学习和实践SSH投票...
10. **测试与调试**:可能使用JUnit进行单元测试,确保代码的功能正确性;而Eclipse或NetBeans自带的调试工具可以帮助定位和修复问题。 以上就是基于SSH的网站开发所涵盖的关键技术点,它们共同构成了一个功能完善...
8. **测试与调试**:单元测试、集成测试,使用如JUnit和Mockito等工具,以及如何使用日志进行问题排查。 9. **部署与运维**:如Tomcat服务器的配置、JVM调优、负载均衡等。 通过研究这个SSH框架的社区网站项目,...
【标题】"基于SSH框架的系统"是一种常见的企业级应用开发模式,SSH分别代表Spring、Struts和Hibernate三个开源框架的首字母缩写。Spring作为核心的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...
JUnit可以用于测试Action和Service层,而数据库相关的测试可以借助Hibernate的Session模拟,或者使用数据库测试工具如DBUnit。 以上是SSH框架与Oracle数据库在登录注册场景中的核心知识点,通过理解并熟练掌握这些...
标题“SSh_Struts2_Test”暗示我们正在讨论一个与SSH(Spring、Struts2和Hibernate)集成框架相关的测试项目。SSH是Java开发中的常见Web应用程序框架组合,用于构建高效、模块化的应用。Struts2提供了MVC架构,...
在Java企业级开发中,SSH(Struts2、Spring、Hibernate)是一个常见的开源框架组合,用于构建高效、灵活且可扩展的Web应用程序。SSH框架整合了MVC模式、依赖注入和对象关系映射,大大简化了后端开发。在这个场景中,...
7. **测试**:可能包含JUnit测试用例,用于验证业务逻辑和数据访问的正确性。 学习这个蓝本,初学者可以通过阅读代码和配置文件,了解SSH整合的具体实现步骤,同时也可以动手运行项目,加深对框架集成的理解。此外...
9. **单元测试和集成测试**:使用JUnit等测试工具对系统各部分进行单元测试,确保每个组件的功能正确。同时,通过集成测试确保SSH框架各组件间的协同工作无误。 10. **性能优化**:考虑到系统可能面临的并发访问,...
SSH整合是Java开发中常见的技术栈,主要包括Spring、Struts2和Hibernate三个框架。这三个框架协同工作,可以构建出高效、灵活的企业级Web应用程序。在Eclipse这样的集成开发环境中进行整合,需要正确配置和导入相应...
- **单元测试**:使用JUnit进行单元测试,确保代码质量。 - **性能优化**:合理配置数据库连接池,使用缓存技术如 Ehcache 提升系统性能。 综上所述,"Java简单的SSH后台管理"项目是一个基于Java的后台管理系统,...
5. **测试和运行**:最后,编写JUnit测试确保所有组件都能正常工作,然后运行应用,通过浏览器发送请求查看结果。 **注意事项**: 1. 版本兼容性:确保Spring、Struts2和Hibernate版本之间兼容,避免因版本不匹配...
7. **单元测试和集成测试**:为了确保示例的正确性,项目可能包含针对SSH和jbpm组件的测试用例,如使用JUnit进行单元测试,使用Mockito模拟对象交互,以及使用Arquillian进行集成测试。 8. **部署和运行**:最后,...
3. **测试工具**:提到了多种用于不同类型测试的工具,如LoadRunner、JMeter(性能测试),AppScan(安全测试),Selenium(自动化测试),JUnit、EasyMock(单元测试),Eclemma/JaCoCo(测试覆盖率),QUnit...