将Hibernate配置到Weblogic JNDI上的详细步骤

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

我机器上的有个Hibernate的项目,在D:/test/oracle目录下,该目录下的结构是:
D:/test/oracle/lib 放置hibernate的所有jar包
D:/test/oracle/src 放置源代码
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_LIB=D:/test/oracle/lib
set HIBERNATE_CLASSES=D:/test/oracle/classes
set CLASSPATH=%CLASSPATH%;%HIBERNATE_LIB%/cglib-asm.jar;%HIBERNATE_LIB%/commons-beanutils.jar;%HIBERNATE_LIB%/commons-collections.jar;%HIBERNATE_LIB%/commons-lang.jar;%HIBERNATE_LIB%/commons-logging.jar;%HIBERNATE_LIB%/dom4j-full.jar;%HIBERNATE_LIB%/hibernate2.jar;%HIBERNATE_LIB%/jcs.jar;%HIBERNATE_LIB%/log4j-1.2.8.jar;%HIBERNATE_LIB%/odmg.jar;%HIBERNATE_CLASSES%

下面一行,就是本来脚本里面的启动命令:
@rem Call Weblogic Server
call "C:/bea/weblogic700/server/bin/startWLS.cmd"

二、在Weblogic上配置Oracle数据库的连接池。这一步本来和Hibernate无关,但是如果你想要使用EJB,想要使用JTA,那么必须使用Weblogic提供的连接池,而不能使用Hibernate自带的连接池,或者其它第三方连接池,否则容器将无法管理数据库事务。这一步很简单,就是在Weblogic Console里面配置Connection Pool和TxData Source,我的Tx DataSource取名称为“mypool”

三、修改hibernate.properties。使用Weblogic的连接池,而不是自带的连接池。我修改的是D:/test/oracle/classes/hibernate.properties,增加如下行:
hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.datasource mypool
把
#hibernate.connection.pool_size 1
#hibernate.statement_cache.size 25
注释掉
然后
hibernate.connection.provider_class net.sf.hibernate.connection.DatasourceConnectionProvider
去掉注释,这样就修改好了。

另外提到一点的是
hibernate.jdbc.fetch_size 50
hibernate.jdbc.batch_size 25
分别对数据库查询和插入有很大的性能影响,调节这两个选项可以得到最好的性能。

四、自己写一个StartUp类,这个类要实现weblogic.common.T3StartupDef接口。Hibernate给出了这个类的代码片断,但是不全,我把它补全了,并且做了一些修改。代码如下:

package com.fankai;import java.util.*;import javax.naming.*;import weblogic.common.T3StartupDef;import weblogic.common.T3ServicesDef;import org.apache.log4j.Logger;import net.sf.hibernate.cfg.Configuration;import net.sf.hibernate.SessionFactory;public class WLSStartup implements T3StartupDef {  public static final String SESSION_FACTORY_JNDI = "hibernate";  public static final String URL = "t3://localhost:7001";  private static final Logger log = Logger.getLogger(WLSStartup.class);  public void setServices(T3ServicesDef services) {}  public String startup(String name, Hashtable args) throws Exception {      String METHOD_NAME = "startup ";      try {        log.info(METHOD_NAME + " Going to bind Hibernate object. ");        doBind( );        log.info (METHOD_NAME + " Bound Hibernate object!");      } catch (Exception e) {        log.info (METHOD_NAME + " Exception while binding Hibernate Object to Weblogic JNDI" );        e.printStackTrace( );      }      return "WLS Startup completed successfully";  }  private static void doBind( ) throws Exception {    Properties  environment  = null;    InitialContext  context  = null;    try {      environment = new Properties( );      environment.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");      environment.put(Context.PROVIDER_URL,URL);      log.info( "Constructing an Initial Directory Context object" );      context = new InitialContext( environment );      Configuration conf = new Configuration().addClass(Cat.class);      SessionFactory sf = conf.buildSessionFactory();      if (sf == null) throw new Exception("SessionFactory cannot be built!");      try {        if(context.lookup(SESSION_FACTORY_JNDI ) != null )          context.rebind(SESSION_FACTORY_JNDI, sf);        else          context.bind(SESSION_FACTORY_JNDI, sf);      } catch (NamingException nameEx ) {        context.bind(SESSION_FACTORY_JNDI, sf);      }    } catch ( NamingException nameExp ) {      throw new Exception("NamingException: " + nameExp.getMessage());    } catch( Exception excp ) {      throw excp;    } finally {      if(context != null) {        try {          context.close( );          context = null;        } catch ( NamingException nameExp ) {          throw new Exception("NamingException for context close: " + nameExp.getMessage());        }      }      environment = null;    }  }}


编译这个源代码的时候需要注意的是,要把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.fankai.WLSStartup,然后点击“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 Class: net.sf.hibernate.impl.SessionFactoryImpl
Object Hash Code: 454492
Object To String: net.sf.hibernate.impl.SessionFactoryImpl@6ef5c
完全正确!
最后你可以随意在EJB或者Servlet/JSP里面使用JND查找来获得SessionFactory了。

例如:

Context ctx = new InitialContext();SessionFactory sf = (SessionFactory) ctx.lookup("hibernate");
从门禁到支付:Uniapp+NFC开发避坑指南(支持Mifare Classic) 本文详细介绍了Uniapp结合NFC技术开发门禁与支付系统的实战指南,特别针对Mifare Classic卡片进行深度优化。内容涵盖环境配置、设备兼容性处理、卡片安全机制解析以及高性能读写优化策略,帮助开发者快速实现跨平台的智能硬件交互解决方案。 阅读详情

相关推荐

ArduPilot + Gazebo + Mavros + QGC + 遥控器:从仿真到实机的自主轨迹控制实践

本文详细介绍了基于ArduPilot、Gazebo、Mavros和QGC的无人机自主轨迹控制全流程实践。从仿真环境搭建、多终端协同配置,到遥控器集成与自主圆形轨迹算法实现,提供了完整的代码示例和实机迁移要点,帮助开发者快速掌握无人机自主控制技术。

corn8的博客 940

Hibernate入门 - 基础配置

Hibernate入门 - 基础配置作者:robbin (MSN:robbin_fan AT hotmail DOT com)版权声明:本文严禁转载,如有转载请求,请和作者联系Hibernate配置文件可以有两种格式,一种是 hibernate.properties ,另一种是 hibernate.cfg.xml 后者稍微方便一些,当增加hbm映射文件的时候,可以直接在 hibernate.cfg

magui_gongzi的专栏 561

深入浅出:UE4类型系统完整构建过程详解

UE4的类型系统是一个复杂但设计精巧的架构,它通过静态代码生成和运行时构建的完美配合,实现了强大的反射功能。理解这个过程不仅有助于解决开发中的问题,也能让你更好地利用UE4的各种高级特性。就像建造一栋大楼需要经过设计、备料、框架、装修、验收等多个阶段,UE4类型系统的构建也是一个多阶段、精细化的过程。每个阶段都有其特定的职责,共同协作完成从源代码到运行时对象的转换。

m0_45371381的博客 911

在hibernate中应用weblogic的数据源时的配置文件

weblogic        org.hibernate.dialect.SQLServerDialect        t3://localhost:7001        CSNDataSource        weblogic        weblogic.jndi.WLInitialContextFactory                   --

风生水起 2973

RK3588嵌入式开发实战:U-Boot设备树文件修改全指南(含常见踩坑点)

本文为RK3588嵌入式开发者提供了一份详尽的U-Boot设备树文件修改实战指南。文章深入解析了设备树的核心架构,从基础硬件适配到时钟、电源管理等进阶配置,并重点总结了内存节点、串口输出、电源时序等常见踩坑点与解决方案,旨在帮助开发者高效、稳健地完成U-Boot移植与定制工作。

yhn456789的博客 732

从流量到凭证:实战解析SMB协议中的NTLMv2/v1哈希提取与破解

本文详细解析了SMB协议中NTLMv2/v1哈希的提取与破解实战技巧。从流量捕获、哈希格式处理到Hashcat高效破解,提供了一套完整的操作指南。文章特别强调了NTLMv2和NTLMv1哈希的区别及处理要点,并分享了防护建议与检测方法,帮助安全人员提升渗透测试效率。

weixin_30642561的博客 116

Hibernate连接Weblogic的数据源

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34400525的博客 333

模型训练篇 | 手把手教你使用ResNet训练自己数据集和推理,ResNet50通用物体分类识别,含完整代码和数据集,全网最详细教程

手把手教你使用ResNet训练自己数据集和推理,ResNet50通用物体分类识别,含完整代码和数据集,全网最详细教程。本篇文章将带你学习 ResNet50 模型构建、ResNet50训练自己数据集、数据集处理、推理和验证、模型剪枝与模型改进等。 本篇教程适配各种分类识别任务,可以说是一个通用的教程,只需修改自己的数据集即可完成自己领域的任务和系统实现。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 731

hibernate连接weblogic JNDI 配置

hibernate连接weblogic JNDI 配置 1.在weblogic服务器安装路径下找到两个客户端依赖包wlfullclient.jar. wlfullclient.jar,并下载下来引入工程当中。 2.配置hibernate配置文件 hibernate.cfg.xml &lt...

chuqi9047的博客 422

R语言生存分析之竞争风险模型

R语言生存分析之竞争风险模型 竞争风险模型(Competing Risk Model)是一种处理多种潜在结局生存数据的分析方法,早在1999年Fine和Gray就提出了部分分布的半参数比例风险模型,通常使用的终点指标是累积发生率函数(cumulative incidence function,CIF)。 研究中结局事件可能有多个,某些结局将阻止感兴趣事件的出现或影响其发生的概率,各结局事件形成“竞争”关系,互为竞争风险事件。 竞争风险模型( Competing Risk Model ) : 指

data+scenario+science+insight 5247

沉降预测算法-指数曲线法

沉降预测的指数曲线法原理和代码实现

yh523的博客 1009

[转载]在Weblogic上配置Hibernate为JNDI

在Weblogic上配置Hibernate为JNDI一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic...

congji3817的博客 177

ZYNQ microblaze boot.bin固化步骤

一,ZYNQ移植软核的原理FPGA规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在开发应用程序的时候就不用直接去写驱动物理硬件的代码,而是直接调用Windows提供的API就行了。

wangjie36的博客 2781

jndi weblogic mysql_Weblogic上配置Hibernate为JNDI_MySQL

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

weixin_42196667的博客 141

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

在Weblogic上配置Hibernate为JNDI及weblogic的几个基础问题

一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic的启动脚本文件startWeblogic.cmd和startWLS.cmd,我想大部分人都知道该怎么配置了。    我机器上的有个Hibernate的项目,在D:/test/oracle目录下,该目录下的结构是:    ja

it_man的专栏 3466

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Weblogic上配置Hibernate为JNDI

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

上海夜未眠 1029

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

在Weblogic上配置Hibernate JNDI

一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic的启动脚本文件startWeblogic.cmd和startWLS.cmd,我想大部分人都知道该怎么配置了。我机器上的有个Hibernate的项目,在D:/test/oracle目录下,该目录下的结构是:D:/test/or

kindy的开发工作室 622

在Weblogic上配置Hibernate为JNDI (转)

 一、首先需要把Hibernate 用到的jar包和配置文件都放到Weblogic能够搜索到的CLASSPATH路径上。单单这一步就有很多人很迷茫,其实去仔细看看Weblogic的启动脚本文件startWeblogic.cmd和startWLS.cmd,我想大部分人都知道该怎么配置了。我机器上的有个Hibernate的项目,在D:/test/oracle目录下,该目录下的结构是:D:/

火鸟专栏 1923

hibernate oracle datasource,hibernate weblogic JDNI 配置找不到DataSource,该如何处理

当前位置:我的异常网» J2EE»hibernate weblogic JDNI 配置找不到DataSource,该hibernate weblogic JDNI 配置找不到DataSource,该如何处理www.myexceptions.net网友分享于:2013-06-07浏览:192次hibernate weblogic JDNI 配置找不到DataSourceorg.hiber...

weixin_39690391的博客 268
上一篇: Project specific coding conventions
下一篇: Hibernate Jar包说明
KevinAAA
博客等级 码龄24年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值