fantasy-java
我越发的感觉到你就是我生命中的精灵,翻转跳跃在我那空虚的时空;有人说世界上最美的是春天和爱情,在我眼中有你的地方就是最美的。
BlogJava
首页
新随笔
联系
聚合
管理
随笔-95 评论-31 文章-10 trackbacks-0
osgi+websphere6.1+jms+若干问题小结
osgi本来就是基于插件的模块化开发,如果要放在web容器下运行,它提供了一个ServletBrige.class类(名字记不太清了),比如在web.xml配置Servlet的name以及实现类为这个ServletBrige类,还有一些初始化的参数,这些参数名称是固定的,可以反编译这个ServletBrige类查看,那么web容器启动的时候,就能加载osgi,但是为什么要这样做?为什么不直接建立个web项目直接在web容器运行岂不是好?
如果按照这种方式,那么要获取web容器替我们初始化好的东西比如JNDI、数据源、JMS连接工厂等等就会有问题,因为osgi的类加载器是每个工程有自己的类加载器(osgi玩的不深,查了些资料貌似是这样说),如果要获取web容器配置的东西,那么要使用如下方式:
Thread current
=
Thread.currentThread();
ClassLoader old
=
current.getContextClassLoader();
//
获得当前线程的类加载器
try
{
current.setContextClassLoader(ServletBrige.
class
.getClassLoader());
//
将类加载器换成web.xml里面的servletBrige类(这个类名记不清楚~),这样就可以获取web容器初始化好的内容
InitialContext context
=
new
InitialContext();
//
这一步new InitialContext()的时候才不会报异常,才能获取web容器的内容
context.lookup(
"
jms/datasource);
}
catch
(Exception e)
{
}
finally
{
current.setContextClassLoader(old);
//
操作结束后,将类加载器换回来
}
但是采用上面这一步获取数据源是没有问题的,但是采用上面的方式获取jms连接工厂就会报错,具体错误信息是无法强制类型转换,最后搞了好久,反编译看过了,最后类型一模一样仍然无法强制类型转换,(websphere6.1里面的jms以及队列配置没有任何问题)。
所以后来,不用这种方式,采用直接给new InitialContext(Props);的方式获取,代码如下:
Properties props
=
new
Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"
xxxxx
"
);
//
名字记不清楚了,这两个是was工厂写死的,明天看下代码补上
props.put(Context.PROVIDER_URL,
"
iiop://localhost:2809
"
);
//
这里面的url也基本上写死的,里面的2809端口号是was的应用程序服务器 > server1 > 端口里面的BOOTSTRAP_ADDRESS值
InitialContext context
=
new
InitialContext(props);
//
接着就可以获取jms的jndi了
用这种方式需要was的包,具体如下(家里安装的是was7):
IBM\WebSphere\AppServer\runtimes\com.ibm.ws.admin.client_7.0.0.jar
IBM\WebSphere\AppServer\runtimes\com.ibm.ws.webservices.thinclient_7.0.0.jar
\IBM\WebSphere\AppServer\plugins\com.ibm.ws.runtime.jar
还有几个类 明天补上
posted on 2012-07-25 00:51
朔望魔刃
阅读(458)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
<
2012年7月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
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
1
2
3
4
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Android
flex(1)
git
gradle
IHE&DICOM&HL7的开源框架(1)
java(40)
JavaScript(2)
maven(1)
mybatis
netty(3)
python(3)
spring
svn(1)
即时通信(4)
各种整合
各种配置(9)
数据库(2)
设计模式&&数据结构(11)
随笔档案
2018年8月 (1)
2018年3月 (1)
2018年1月 (1)
2017年12月 (3)
2017年11月 (6)
2017年10月 (1)
2017年8月 (2)
2017年7月 (1)
2017年6月 (1)
2017年5月 (1)
2017年2月 (1)
2016年12月 (3)
2016年10月 (1)
2016年9月 (2)
2015年12月 (1)
2015年7月 (2)
2015年5月 (1)
2015年2月 (3)
2015年1月 (1)
2014年12月 (2)
2014年7月 (1)
2014年5月 (4)
2014年3月 (1)
2013年9月 (6)
2013年8月 (1)
2013年7月 (3)
2013年4月 (1)
2012年7月 (2)
2012年6月 (4)
2012年5月 (2)
2012年1月 (1)
2011年12月 (2)
2011年11月 (2)
2011年9月 (1)
2011年6月 (1)
2011年5月 (1)
2011年3月 (4)
2011年2月 (2)
2010年12月 (2)
2010年9月 (9)
2010年8月 (4)
2010年4月 (1)
2010年3月 (1)
2010年1月 (2)
文章分类
文章(2)
生活(2)
英语学习(3)
诗歌(3)
文章档案
2011年1月 (2)
2010年12月 (3)
2010年11月 (1)
2010年10月 (1)
2010年9月 (2)
2010年8月 (1)
收藏夹
技术文章(2)
娱乐博客
周德东
郭敬明
韩寒
鬼谷女
牛博
其实我是一个程序员
博客大巴~~
很牛的C++程序员
梦幻之旅
达内恩师
雪山飞鹄
高性能网站专家 淘宝 阿里架构师
搜索
最新评论
1. re: jsp通过js按钮导出word小结
下达
--q
2. re: linux安装mysql后root无法登录
谢啦
--galo
3. re: openfire_3.9.3集群配置
我这根本就不显示hazelcast 这个插件包。请教下各位大神。
--openfre
4. re: openfire_3.8.2集群配置[未登录]
hazelcast-cache-config.xml 文件每一台都要配4行ip吗
--wp
5. re: openfire_3.8.2集群配置
评论内容较长,点击标题查看
--朔望魔刃
阅读排行榜
1. linux安装mysql后root无法登录(17828)
2. maven三种打包插件(15113)
3. openfire_3.8.2集群配置(9845)
4. 联想y510p网卡设置(8551)
5. swing日期控件(6839)
评论排行榜
1. openfire_3.8.2集群配置(17)
2. dcm4chee部署安装(3)
3. Java Service Wrapper工具把Java程序转换为Windows服务小结(2)
4. jsp通过js按钮导出word小结(2)
5. XML Schema<一>(1)