最近要写一个小的B/S工程,觉得往常的SSH框架实在太过沉重,故决定只用持久层的hibernate加上DWR来实现。编码过程中出现了不少问题,才发现自己的基础还不够扎实。
问题1 Myeclipse自动映射生成的DAO文件缺乏可用性
我使用的是Myeclipse8, 或许是我配置不好,不过就目前情况来看,通过IDE自带的映射文件生成工具生成的DAO是有错误的。因为我的项目中没加入spring,就缺少了spring的事务管理,而在这种情况下,IDE生成的DAO并没有自动加入事务,这直接导致DAO中除了“查”的方法之外,余下的方法都不能正常的执行。因此为了保证可运行,必须手动添加事务。
public void save(Company transientInstance) {
log.debug("saving Company instance");
try {
Transaction ts = getSession().beginTransaction();
getSession().save(transientInstance);
ts.commit();
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
问题2 DWR.xml文件的设置问题
之前做的项目都有spring的存在,而这里没有了,因此dwr.xml文件中的<create creator="spring" javascript="CompanyManager" >的creator要从spring改成new。原来以为这样就没问题了呢,后来发现dwr会出问题,才发现除了修改creator,还需要将<param name="javabean"改成<param name="class",这样就OK了
问题3 自动生成的DAO中findByProperty方法出错,报ClassNotFoundException: org.hibernate.hql.ast.HqlToken
修正了问题1后,发现程序每次调用到findByProperty方法后都直接出现异常被捕获,(这里我的try...catch...写的不好- -,完全看不出是在哪里出的错,只知道在整个try块中有问题)。通过DEBUG,发现抛出的是ClassNotFoundException: org.hibernate.hql.ast.HqlToken异常。上网查了这个异常,绝大多数都是提到是在将hibernate3项目部署到weblogic上的时候会出现的异常,因为一个叫antlr.jar的包冲突了。我到我项目里一查看,果然有个antlr.jar的包。悲剧的是,这个包居然是锁死在整个Hibernate 3 Core Libraries中的,无法单独删除。同时,我的项目也不是部署在weblogic上而是tomcat上的啊。郁闷中偶然网上见到一个方案,让我们在Hibernate.cfg.xml中添加一个属性,尝试一下,果然奏效了,工程正常执行了~
添加的属性:
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
个人觉得添加到这个属性的作用应该是设定 更改hibernate执行查询时默认调用的类 为另一个类,这样可能就绕开了对antlr.jar包的调用吧(个人感觉吧,不知道真实原因是什么- -)。
by NN 09-11-23 00:53
分享到:
相关推荐
集成Spring与DWR时可能遇到的jar包冲突问题包括: - **DWR与Spring jar包冲突**:确保项目的依赖管理正确,避免重复引入jar包。 - **JAR版本不兼容**:确保所有相关库的版本兼容。 ##### 13. 在页面中使用DWR进行...
在实际应用中,可能会遇到如"AJAX第二次访问不能进入Action"的问题,这通常与Session过期、缓存、请求参数或服务器配置有关。解决方法包括检查Session管理,清空浏览器缓存,确保请求参数正确,以及调试DWR配置和...
标题中的"ssh+dwr坚决不...总之,这个压缩包为那些在SSH和DWR环境中遇到依赖冲突问题的开发者提供了一个可能的解决方案,通过这些特定版本的JAR文件,他们可以在不修改原有框架配置的情况下,顺利地集成和运行应用。
通过深入研究这个"DwrTest"示例,你可以了解到如何在SSH架构中集成DWR,以及如何有效地解决DWR在实际应用中可能遇到的问题。这个资源对于提升你的Java Web开发技能,尤其是Ajax技术的应用,将大有裨益。
DWR(Direct Web Remoting)是一种Java库,用于在浏览器和服务器之间进行实时、双向通信。这个压缩包包含了关于DWR的重要资源,包括文档、案例...通过学习和实践,我们可以有效地利用DWR构建动态、高效的Web应用程序。
### DWR 框架详解及实战应用 #### 一、DWR简介 ...通过上述内容的学习和实践,开发者可以深入了解DWR框架的工作原理和技术优势,并能够将其应用于实际项目中,从而构建高效、灵活的Ajax应用程序。
通过本书的学习,开发者不仅可以掌握DWR的基本用法,还能学会如何将其与其他主流框架结合使用,以构建更加强大和灵活的Ajax应用程序。无论是对于前端还是后端开发者,这都是一本不可多得的好书。
然而,由于DWR的官方文档相对较少,学习和使用过程中可能会遇到一些挑战。 Fangang 提供的这份非官方DWR帮助文档,旨在为初学者提供更深入的理解和实践指导。 1. **dwr.xml文件的配置** dwr.xml是DWR的核心配置...
9. **与其他技术结合**:DWR可以与AJAX、jQuery、Dojo等前端库,以及Spring、Hibernate等后端框架很好地集成,学习如何整合这些技术将扩大DWR的应用范围。 10. **社区资源**:利用官方文档、在线论坛、博客和教程等...
2.3.8.jar`, `ognl-2.6.11.jar`, `struts2-core-2.0.11.2.jar`, `struts2-spring-plugin-2.0.11.2.jar`和`xwork-2.0.5.jar`都是Struts2框架的组成部分,用于构建MVC应用,它们与Hibernate和Spring共同作用于应用程序...
在所有SSH框架支持导入完成后,可能会遇到Spring和Hibernate包冲突的问题,此时选择"Keep Existing"即可。 接下来,调整Java Build Path,移除或添加必要的库,确保项目结构正确无误。 配置完毕后,SSH框架已准备...
2. **社区支持**:活跃的社区意味着遇到问题时能更容易获得帮助。 3. **学习成本**:评估团队成员对新技术的学习能力和接受程度。 4. **扩展性和灵活性**:考虑到未来项目的发展方向,选择具有一定扩展性和灵活性的...
8. **JDBC相关**:在项目的构建过程中,可能会涉及到MySQL 5数据库的连接和操作,例如使用Ant进行数据操作或者数据库同步。 9. **Spring框架**:项目依赖于Spring 2.5.6版本,Spring是一个全面的企业级应用框架,...
### Java与JavaScript开发要点详解 ...综上所述,无论是Java还是JavaScript的开发,都需要开发者具备良好的编程习惯和严谨的思维逻辑,才能有效地避免常见的错误和潜在的性能问题,从而构建出高质量的应用程序。
他认识到,Java不仅适合开发小型应用,如网页接口,而且在J2EE平台上,Java也能处理大型企业级应用,虽然可能会有资源消耗大的问题,但其跨平台能力和丰富的框架支持使得Java在软件开发中占据重要地位。 总的来说,...
这些库在SSH框架整合SSHD的过程中,可能分别扮演着数据访问、模板渲染、网络通信、文件上传等角色,帮助开发者构建出更完善的应用系统。在实际整合中,开发者需要了解每个库的功能,正确配置它们,并解决可能出现的...
- SSH框架整合:Spring3、Struts2和Hibernate4是Java企业级应用中常用的三大框架,它们的整合可以实现MVC模式,提高开发效率。DWR用于提供异步更新,Ext是一个JavaScript库,JSON则是数据交换格式。 - SSI整合:...