• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Weblogic81和Hibernate 的集成问题

发布: 2007-6-22 07:38 | 作者:   | 来源: java研究组织  | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

     费了一天,终于搞定了Hibernate和Weblogic81的集成安装问题。网上资料或多或少涉及到了,但都不完整、详细。本文参考了 java视线论坛版主的文章和hibernate网站的文章撰写了本文,希望能对各位Hibernate初学者能有所帮助。

   假设你的工程是D:\testprj;D\testprj\lib存放所有的Hibernate的lib下的jar文件;D;\testprj\classes存放所有的class文件,特别包括一weblogic启动类编写的专用于建立hibernate的sessionfactory的class文件,还有hibernate.propties、log4j.properties、cache.ccf、oscache.properties四个配置文件;

   D:\bea\weblogic81

   1.首先第一步是修改配置weblogic启动环境,添加hibernate的lib和class目录到weblogic的classpath环境中,具体做法是:
找到 D:\bea\user_projects\domains\mydomain\startWebLogic.cmd,添加如下红色字体代码到文件中:

set SERVER_NAME=caserver
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;
        %JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%
@rem set hibernate classpath
set HIBERNATE_LIB=D\testprj\lib
set HIBERNATE_CLASSES=D\testprj\classes
set CLASSPATH=%HIBERNATE_LIB%\cglib-asm.jar;%HIBERNATE_LIB%\cglib-full-2.0.1.jar;%HIBERNATE_LIB%\ehcache-0.7.jar;%HIBERNATE_LIB%\commons-beanutils.jar;%HIBERNATE_LIB%\commons-logging-1.0.3.jar;%HIBERNATE_LIB%\commons-collections-2.1.jar;%HIBERNATE_LIB%\commons-lang.jar;%HIBERNATE_LIB%\commons-logging.jar;%HIBERNATE_LIB%\dom4j-full.jar;%HIBERNATE_LIB%\jcs.jar;%HIBERNATE_LIB%\log4j-1.2.8.jar;%HIBERNATE_LIB%\odmg.jar;%HIBERNATE_LIB%\dom4j-1.4.jar;%HIBERNATE_LIB%\hibernate2.jar;%HIBERNATE_CLASSES%;%CLASSPATH%

@REM Call WebLogic Server


   注意到网上有的网友同样添加jar文件后可能有空格或换行符,出现了用winrar和weblogic不能正常启动的现象,所以最好set CLASSPATH这一行一定要一行写完,同样jar文件名一定要和hibernate 的jar文件一致,否者,最后weblogic启动时候,会出现找不到什么class not found的现象。

   2.利用weblogic的console配置一个jdbc pool,我采用的数据库是sybase,以及一个datasource,datasource当然要用开头的jdbc pool,我们假设它的jndi名称为misdb。

   3.修改hibernate的配置文件,hibernate的配置文件有两个hibernate.propties和hibernate.cfg.xml,前一个是hibernate启动后调用缺省初始化环境文件,后一个是可动态调整,比如说添加数据表的映射文件等等,如何添加的代码,网上可以找的到,我这里就不重复了,两个配置文件有一个就可以了,在初始化hibernate,将hibernate帮定到weblogic的jndi,我们可以在第四步的weblogic启动类源代码中说明。

   hibernate.propties文件配置文件配置比较简单,而且数据库的参数,很多都已经用注释写好了。真是太cool了。

   这里我们要用weblogic的数据源misdb.

   修改添加如下代码,切记,一定保证下面代码唯一啊。

## HypersonicSQL
#hibernate.dialect.net.sf.hibernate.dialect.HSQLDialect
#hibernate.connection.driver_class org.hsqldb.jdbcDriver
#hibernate.connection.username sa
#hibernate.connection.password
#hibernate.connection.url jdbc:hsqldb:hsql://localhost
#hibernate.connection.url jdbc:hsqldb:test
#hibernate.connection.url jdbc:hsqldb:.

   绿色代码一定要注释掉,用#符号

hibernate.dialect net.sf.hibernate.dialect.SybaseDialect
hibernate.connection.datasource misdb
hibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider
hibernate.session_factory_name hibernate.session_factory
hibernate.jdbc.fetch_size 50
hibernate.jdbc.batch_size 25

   红色代码添加入,注意可能后面也有相应的参数配置,记住注释掉

   放心,附件会附代码的

   okay.文件配置完毕,记住要在d:\testprj\classes目录下;

   4.编写weblogic启动类源程序,没办法,因为weblogic特殊,只能这样建立hibernate 的sessionfactory,为什么,因为下面这句
the JNDI implementation in WebLogic Server does not appear to support the Referenceable interface, and exhibits some rather strange behaviour when binding Serializable objects.

   代码关键两句是

Configuration cfg = new Configuration();
SessionFactory factory = cfg.buildSessionFactory();

   网上有些文章到不是不对,有的是直接映射了对象类,比如说cat类了,有的是用

Configuration cfg = new Configuration().configure();
   记住此时就是用hibernate.cfg.xml 文件配置。

   我觉得我这两句最简单,直接调用了hibernate.propties的参数;代码能,下面也有,编译的时候一定要用ant编译,如何配置ant,网上很多文章都有提到,我就不多说了。将WLSstartup.java放到D:\hibernate21\src\net\sf\hibernate下,然后在命令行下用ant或者运行build.bat批处理文件,编译后的WlSstartup.class大概在D:\hibernate21\build目录下,然后copy到d:\testprj\classes

   okay,完毕

   5.就是将WlSstartup类在weblogic的console中配置好,怎么配,robbin的文章或者weblogic的随便那个管理配置的文章都有,我这里就不提了。

   好的,所有注意事项步骤完毕,启动你的weblogic吧。应该是正常的信息,只要你按照我的步骤做,没问题的。

   有什么问题,可以留言 我的blog或者http://gispda.blogdirver.com或者email给我 gispda@163.com。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网