osgi 环境下 hibernate 4 配置

准备将公司的老应用迁移到OSGI karaf平台上。很吐血的一点就是hibernate。 这玩意,真是超级麻烦的一个工程。

classload是最头痛的一个问题。在Hibernate4上利用注册服务的方式 实现了 classloader的代理。

顺便提一句想用Hibernate3做reloadclass的同学们别妄想了。

除非是改源码。

标签:
Hibernate Karaf

[1].[代码] 核心代码创建 SessionFactory 跳至 [1]

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

/**

     *
Rebuild hibernate session factory

     *

     */

    public

static

void

rebuildSessionFactory() {

        try

{

            //
create a BootstarpRegistry

            BootstrapServiceRegistry
bootstrapServiceRegistry =
new

BootstrapServiceRegistryBuilder()

            //
pass in a class-loader Hibernate should use to load application

            //
classes

                    .withApplicationClassLoader(org.postgresql.Driver.class.getClassLoader())

                    //
pass in a class-loader Hibernate should use to load

                    //
resources

                    .withResourceClassLoader(HibernateSessionFactory.class.getClassLoader()).build();

            //
create a ServiceRegistry

            ServiceRegistryBuilder
registryBuilder =
new

ServiceRegistryBuilder(bootstrapServiceRegistry);

            //
clear

            configuration
=
new

Configuration();

            //
read config

            URL
u = HibernateSessionFactory.
class.getClassLoader().getResource(configFile);

            configuration.configure(u);

            registryBuilder.applySettings(configuration.getProperties());

            //
build ServiceRegistry

            ServiceRegistry
serviceRegistry = registryBuilder.buildServiceRegistry();

            //
create SessionFactory

            sessionFactory
= configuration.buildSessionFactory(serviceRegistry);

        }
catch

(Exception e) {

            System.err.println("%%%%
Error Creating SessionFactory %%%%"
);

            e.printStackTrace();

        }

    }

时间: 2024-10-06 23:00:26

osgi 环境下 hibernate 4 配置的相关文章

win环境下,django+postgresql配置

先下载postgresql的python包,选择合适自己的python版本和平台32位还是64位,http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 下载win环境下postgresql接口,http://www.stickpeople.com/projects/python/win-psycopg/ 设置django settings.py DATABASES项 注:第2步如果不操作就会出现from psycopg2._psycopg import

OSPF环境下帧中继的配置

配置 R1========================================================================================= frame-relay de-list 1 protocol ip list 100 ! interface Loopback0 ip address 1.1.1.1 255.255.255.0 ! interface Serial1/0 ip address 10.1.1.1 255.255.255.0 e

Ubuntu环境下的Redis 配置与C++使用入门

  Redis是一个高性能的key-value数据库. Redisedis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用.它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便. 本文将通过介绍Ubuntu环境下的Redis 配置,介绍C++入门使用的方式,帮助读者快速上手Redis. 安装配置 获取源码.解压.进入源码目录,编译

windows环境下一块网卡配置双Ip或者多个Ip

倘若 有 69.231和238两台机器 ,其中这两台机器的站点部署一致互相为冷备份.如果69.231挂了,只要69.238这台冷备份的机器上面部署的站点内容和69.231一致就可以通过在69.238这个机器上配置双Ip的方式进行切换! windows环境下一块网卡配置双Ip或者多个Ip

windows环境下mysql主从配置

原文:windows环境下mysql主从配置 mysql主从配置. 相关理论知识可以百度一下,这里就不多说了,直接说如何配置. 一.环境介绍及说明 主库所在的操作系统:win7 主库的版本:mysql-5.6.24-winx64.zip 主库的ip地址:127.0.0.1 主库的端口:3306 从库所在的操作系统:win7 从库的版本:mysql-5.6.38-winx64.zip 从库的ip地址:127.0.0.1 从库的端口:3307 下载地址:https://www.mysql.com/d

Mac环境下SVN的配置和使用

简单记录一下在Mac环境下,SVN的配置步骤和使用相关.(Mac自带了svn的服务器和客户端功能,简单配置一下即可使用) 一.SVN的配置方法 1. 创建一个仓库目录,比如在/Users/你的用户名 目录下新建一个svn_code仓库. 打开终端,输入指令:svnadmin create /Users/ 你的用户名/svn_code,指令执行成功后,结果如下所示: 2. 配置svn的用户权限,主要是修改/svn_code/conf 目录下的三个文件 (1)打开svnserve.conf,将下面的

windows环境下solrcloud的配置安装(单机模拟多服务器)

本文是在单机环境下模拟集群环境,进行solrcloud的配置安装. ------------------------------------------- 所用环境及软件: ------------------------------------------ 1. Windows 7 64bit: 2. Jdk v1.7 3. Tomcat v7.0.20 下载地址: http://tomcat.apache.org/ 4. Zookeepr v3.4.6 下载地址: http://zookee

【Nginx】LNMP环境下的后续配置

本文为点点点细雨原创,谢绝转载 前言 完成了基本的配置后,我们可以直接在nginx上运行php环境了,那么,接下来要做的就是后续的一些操作 配置网卡 由于现在的上网方式从分配固定的ip变成了自动分配,所以需要重新修改网卡配置 查看虚拟机配置,虚拟机采用的是Mac上的这个 然后修改网卡配置文件,改成对应的mac地址以及dhcp [[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth1 HWADDR

linux环境下PS1变量配置

我的ps1命令提示符:PS1="\[\e[32;40m\][ \[\e[32;40m\]\u \[\e[32;40m\]>>\h \[\e[32;40m\]\w \[\e[36;40m\](\A) \[\e[32;40m\]] \[\e[0m\]\$" 1. 设置ps1变脸的显示 PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下.下面是FC4环境下默认的特殊符号所代表的意义: \d :代表日期,格式为w