电话:0731-83595998
导航

在Weblogic上配置Hibernate为JNDI

来源: 2017-12-22 10:24

 百度广告

  一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic的启动脚件startWeblogic.cmd和startWLS.cmd,我想大部分人都知道该怎么配置了。

  我机器上的有个Hibernate的项目,在D:"test"Oracle目录下,该目录下的结构是:

D:"test"Oracle"lib 放置hibernate的所有jar包
D:"test"Oracle"classes 编译好的代码和hibernate的配置文件(hibernate.properties, log4j.properties, cache.ccf)

  现在需要把D:"test"oracle"lib目录下那些jar文件和D:"test"Oracle"classes目录都放置到Weblogic的 CLASSPATH里面去,所以修改mydomain里面的Weblogic启动脚本startWeblogic.cmd,在启动Weblogic之前,插入设置CLASSPATH的命令,

 

@rem set hibernate classpath
set HIBERNATE_CLASSES=D:"test"Oracle"classes
%HIBERNATE_LIB%"commons-collections.jar;%HIBERNATE_LIB%"commons-lang.jar;
%HIBERNATE_LIB%"hibernate2.jar;%HIBERNATE_LIB%"jcs.jar;
%HIBERNATE_LIB%"jta.jar;%HIBERNATE_CLASSES%;

 

@rem Call Weblogic Server

  三、修改hibernate.properties。使用Weblogic的连接池,而不是自带的连接池。我修改的是D:"test"Oracle"classes"hibernate.properties,增加如下行:

 

hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider

  另外提到一点的是

 

hibernate.jdbc.fetch_size 50

  为了保证sessionFactory实例的预创建,使用Weblogic的T3StartUpDef接口创建一个StartUp类,在Weblogic启动的时候运行:

 

package com.Javaeye;

import Java.util.Hashtable;
import weblogic.common.T3ServicesDef;
import net.sf.hibernate.sessionFactory;

public class HibernateStartUp implements T3StartupDef {

 public void setServices(T3ServicesDef services) {}

 public String startup(String name, Hashtable args) throws Exception {
return "Hibernate Startup completed successfully";
}


 

SessionFactory sf = new Configuration().configure().buildsessionFactory();

  4、编译HibernateStartUp.Java

  编译这个源代码的时候需要注意的是,要把weblogic.jar包和Hibernate所有的相关包和配置文件导入。我是把这个源代码放到D:"test"oracle"src目录下的,用早已编写好的ant脚本运行一下就编译好了,并且编译好的 class文件被放置到D:"test"Oracle"classes目录下,该目录已经被加入到Weblogic的CLASSPATH里面,因此很省事。

  五、配置StartUp类

  启动Weblogic,打开Console控制台,在左边的Applet树上找到StartUp & Shutdown,然后在右边点击"Configure a new Startup Class...",在Name框里面随便填写,在ClassName里面填写你编写的StartUp类,我填写的是 com.Javaeye.HibernateStartUp,然后点击"Apply"。然后切换到Target这选项卡,在Target-Server左边的 Avaiable框里面选择"myserver",点击右箭头,把它挪到右边的"Chosen"框里面去,最后再点击一下"Apply"按钮。如果此时 Weblogic的DOS窗口里面没有出错信息,那么应该已经配置成功了。

  六、现在关闭Weblogic,再重新运行 startWelogic.cmd,启动Weblogic,观察DOS窗口的输出信息,可以看到Hibernate的初始化信息一屏屏的滚动输出,证明已经配置成功。现在再打开Console控制台,点击左边Applet树中的Servers|myserver,然后可以在右边最下面找到"View JNDI tree ",点击它,会打开一个浏览器窗口,显示JNDI树,这时你可以看到一个名称为hibernate的JNDI对象,在左边的Applet树中点击它,看右边的详细信息,我的机器上的信息

 

Bind Name: hibernate
Object Hash Code: 454492

  最后你可以随意在EJB或者Servlet/JSP里面使用JND查找来获得sessionFactory了。

  例如:

 

Context ctx = new InitialContext();

  与此不同的是,WebLogic本身的DataSource,EJB,JMS等等都是支持RMI的(前提条件是WebLogic相应的jar要有),所以你可以在WebLogic外面lookup,并且使用它。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端