从OJB到Hibernate的迁移

      项目中本来使用了OJB作为持久层,但是一方面是由于代码编写水平的问题,另一方面也可能因为OJB本身的问题,造成数据库操作在大压力下总是出错。并且原先编写代码的人已经走了,而OJB社区、资料较少,所以维护极为困难。
 
        我的任务是使用Hibernate代替OJB。最后经过学习和DEMO的验证,我决定使用Spring+Hibernate来完成。其中Spring主要用到了ORM和IoC方面,并且利用了DAO思想。
 
        使用MyEclipse,首先新建Web Project,加入Spring、Hibernate性能,导入项目代码、lib、配置文件。然后在此基础上,加入自己编写的Dao类、接口,并且给原有的data beans加入setter/getter方法。在windows下仅调试了Hibernate相关的部分,OJB相关代码并未启动,一切正常。
 
        发布到Linux下的Tomcat时,总是报错:
Error creating bean with name 'sessionFactory' defined in file [/public/opt/jtc/webapps/mwsv4/WEB-INF/classes/config/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.AbstractMethodError: javax.xml.parsers.SAXParser.getXMLReader()Lorg/xml/sax/XMLReader; 
        即使仅将lib、代码导入,而在数据库操作时仍使用OJB,还是在解析OJB配置文件时出以下错:

java.lang.AbstractMethodError:
        at org.apache.tomcat.util.digester.Digester.getXMLReader(Digester.java:900)
        at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)

 

……

 

     最后将问题定位在lib中,MyEclipse为了J2EE项目引入的xercesImpl.jar和hibernate 3.1 core lib引入的xerces.jar存在则报上述错误,删去则一切正常。推测是同OJB库中的某个XML解析的库冲突了。但是由于时间问题,没有去细究。

 

     删去这两个库后,项目迁移正常。但是估计之后在完全删除OJB相关部分时,可能会出错,那时可以考虑将这两个库再导入。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值