Native Library Jawin already loaded in another classloader解决办法[Weblogic10.3]

如果Weblogic上的两个web应用需要使用相同的JNI本地库(Jawin),当第二个web应用加载JNIJawin)本地库时,就会出现Native Library Jawin already loaded in another classloader错误

 

 

 

 

因此为了解决这个问题需要做如下配置

 

一.jawin.jar jawin.dll放到你在第一步配置的JDKjre/lib/ext目录下去(我的:C:/bea/jrockit_160_05/jre/lib/ext)。

二.jawin.jar jawin.dll放到你新建域的Lib目录(我的C:/bea/user_projects/domains/base_domain/lib)下。

红色标注的为您新建的域名

做好以上两步配置后就可以部署程序了,完成!

 

 

 

 

 

下在则在网上找到的原因分析

1、症状

如果JBoss上的两个web应用需要使用相同的JNI本地库,当第二个web应用加载JNI本地库时,就会出现Native Library xxx.so already loaded in another classloader错误

2、原因

 Java虚拟机为了在JNI本地库中确保基于classloader的命名空间隔离,因而不允许一个JNI本地库被两个不同的classloader加载。而JBoss中web应用的classloader是独立的,也就是说每个web应用都有一个专属的classloader,这样就出现两个classloader加载同一JNI本地库的情况

3、解决方法

在JBoss AS中,虽然不同的web应用使用不同的classloader,但是web应用classloader的父classloader是相同的,这样根据双亲委托模型只要让父classloader加载JNI本地库就可以避免被多个classloader加载。父classloader的classpath为JBoss AS配置(default、all或minimal)的lib目录,因而只要将JNI class单独发布成jar包,并放在配置(default、all或minimal)的lib目录中,问题就可以解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值