费了一天终于搞定了Hibernate和Weblogic的集成安装问题网上资料或多或少涉及到了但都不完整详细本文参考了 java视线论坛版主的文章和hibernate网站的文章撰写了本文希望能对各位Hibernate初学者能有所帮助
假设你的工程是D:\testprj;D\testprj\lib存放所有的Hibernate的lib下的jar文件;D;\testprj\classes存放所有的class文件特别包括一weblogic启动类编写的专用于建立hibernate的sessionfactory的class文件还有hibernateproptieslogjpropertiesfoscacheproperties四个配置文件
D:\bea\weblogic
首先第一步是修改配置weblogic启动环境添加hibernate的lib和class目录到weblogic的classpath环境中具体做法是
找到 D:\bea\user_projects\domains\mydomain\startWebLogiccmd添加如下红色字体代码到文件中
set SERVER_NAME=caserver
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;
%JAVA_HOME%\jre\lib\rtjar;%WL_HOME%\server\lib\webservicesjar;%CLASSPATH%
@rem set hibernate classpath
set HIBERNATE_LIB=D\testprj\lib
set HIBERNATE_CLASSES=D\testprj\classes
set CLASSPATH=%HIBERNATE_LIB%\cglibasmjar;%HIBERNATE_LIB%\cglibfulljar;%HIBERNATE_LIB%\ehcachejar;%HIBERNATE_LIB%\commonsbeanutilsjar;%HIBERNATE_LIB%\commonsloggingjar;%HIBERNATE_LIB%\commonscollectionsjar;%HIBERNATE_LIB%\commonslangjar;%HIBERNATE_LIB%\commonsloggingjar;%HIBERNATE_LIB%\domjfulljar;%HIBERNATE_LIB%\jcsjar;%HIBERNATE_LIB%\logjjar;%HIBERNATE_LIB%\odmgjar;%HIBERNATE_LIB%\domjjar;%HIBERNATE_LIB%\hibernatejar;%HIBERNATE_CLASSES%;%CLASSPATH%
@REM Call WebLogic Server
注意到网上有的网友同样添加jar文件后可能有空格或换行符出现了用winrar和weblogic不能正常启动的现象所以最好set CLASSPATH这一行一定要一行写完同样jar文件名一定要和hibernate 的jar文件一致否者最后weblogic启动时候会出现找不到什么class not found的现象
利用weblogic的console配置一个jdbc pool我采用的数据库是sybase以及一个datasourcedatasource当然要用开头的jdbc pool我们假设它的jndi名称为misdb
修改hibernate的配置文件hibernate的配置文件有两个hibernatepropties和hibernatecfgxml前一个是hibernate启动后调用缺省初始化环境文件后一个是可动态调整比如说添加数据表的映射文件等等如何添加的代码网上可以找的到我这里就不重复了两个配置文件有一个就可以了在初始化hibernate将hibernate帮定到weblogic的jndi我们可以在第四步的weblogic启动类源代码中说明
hibernatepropties文件配置文件配置比较简单而且数据库的参数很多都已经用注释写好了真是太cool了
这里我们要用weblogic的数据源misdb
修改添加如下代码切记一定保证下面代码唯一啊
## HypersonicSQL
#hibernatedialect netsfhibernatedialectHSQLDialect
#nnectiondriver_class orghsqldbjdbcDriver
#nnectionusername sa
#nnectionpassword
#nnectionurl jdbc:hsqldb:hsql://localhost
#nnectionurl jdbc:hsqldb:test
#nnectionurl jdbc:hsqldb:
绿色代码一定要注释掉用#符号
hibernatedialect netsfhibernatedialectSybaseDialect
nnectiondatasource misdb
nnectionprovider_class nnectionDatasourceConnectionProvider
hibernatesession_factory_name hibernatesession_factory
hibernatejdbcfetch_size
hibernatejdbcbatch_size
红色代码添加入注意可能后面也有相应的参数配置记住注释掉
放心附件会附代码的
okay文件配置完毕记住要在d:\testprj\classes目录下;
编写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 = cfgbuildSessionFactory();
网上有些文章到不是不对有的是直接映射了对象类比如说cat类了有的是用
Configuration cfg = new Configuration(nfigure();
记住此时就是用hibernatecfgxml 文件配置
我觉得我这两句最简单直接调用了hibernatepropties的参数代码能下面也有编译的时候一定要用ant编译如何配置ant网上很多文章都有提到我就不多说了将WLSstartupjava放到D:\hibernate\src\net\sf\hibernate下然后在命令行下用ant或者运行buildbat批处理文件编译后的WlSstartupclass大概在D:\hibernate\build目录下然后copy到d:\testprj\classes
okay完毕
就是将WlSstartup类在weblogic的console中配置好怎么配robbin的文章或者weblogic的随便那个管理配置的文章都有我这里就不提了
好的所有注意事项步骤完毕启动你的weblogic吧应该是正常的信息只要你按照我的步骤做没问题的