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目录中,问题就可以解决
分享到:
相关推荐
本文将详细介绍Jacob库的使用方法以及如何解决常见的“java.lang.UnsatisfiedLinkError”异常。 1. Jacob库介绍 Jacob库是Java与COM组件之间的桥梁,它提供了Java Native Interface (JNI) 来实现这个功能。通过...
标题中的"libsigar-amd64-linux.so"和"libsigar-x86-linux.so"是两个重要的库文件,它们属于Sigar(System Information Gatherer and Reporter)项目,一个跨平台的系统性能监控工具集。Sigar由Hewlett Packard ...
编译好的rediSearch.so redisJson.so redis安装包下创建module目录,放入redisearch.so rejson.so #redis中添加引用 vim /opt/redis6/bin/redis.conf loadmodule /opt/redis/module/redisearch.so loadmodule /...
Sigar 第三方获取服务器cpu,内存,jvm等信息,里边包含所有的需要...libsigar-amd64-linux.so libsigar-amd64-solaris.so sigar-amd64-winnt.dll sigar-x86-winnt.dll 解压后路径:hyperic-sigar-1.6.4\sigar-bin\lib
在使用Navicat Premium 15这样的数据库管理工具连接Oracle数据库时,有时会遇到“oracle library is not loaded”的错误提示,这通常是由于缺少或不兼容的Oracle客户端库文件导致的。Oracle Call Interface (OCI) 是...
17/09/11 14:30:49 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library Native library checking: hadoop: true /taidl/hadoop/lib/native/libhadoop.so zlib: true /lib64/libz.so.1 ...
Java HotSpot(TM) Server VM warning: You have loaded library /home/hadoop/hadoop-2.5.1/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now. ...
标题“VB.api.dynamically.loaded.code.model.rar_Loaded”暗示了我们正在探讨的是一个关于VB中动态加载API代码的模型或框架。这个压缩包可能包含了示例代码、教程或者工具,帮助开发者理解和实现动态加载API的机制...
Starting namenodes on [Java HotSpot(TM) Client VM warning: You have loaded library /hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the ...
oracle library oci.dll could not be loaded-附件资源
描述中的问题“libmysqlclient.so.18=>not found qt下mysql driver not loaded”揭示了一个常见错误:在Qt环境下,尝试加载MySQL驱动时,系统无法找到“libmysqlclient.so.18”这个特定版本的库文件,因此驱动没有...
1.qt连接数据报错“QMYSQL driver not loaded”问题 2.经查询libqsqlmysql.so依赖库,需要libmysqlclient.so.20 3.里面的安装包官网可以下载到,这里是伸手党福利
The source for the CompInstall.dll can be found in github . com/project-jedi/jcl/tree/master/thirdparty/InnoSetup/CompInstall 1. Extract the zip-archive. 2. Open the package file appropriate to your ...
解决ubuntu16.04 上qt数据库开发遇到的QMsqldrivers not loaded
解决qt5.8连接mysql的如下问题 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7 64位ubuntu下Qt5.8连接mysql用的mysql驱动文件 使用方法 下本...
在运行PHP项目时,可能会遇到一个常见的警告信息:"PHP Warning: Module 'modulename' already loaded in"。这个警告出现的原因是因为PHP尝试加载一个模块,但是该模块已经存在于内存中了。解决这个问题的关键是找出...
Starting namenodes on [Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop-2.6.0/lib/native/libhadoop.so which might have disabled stack guard. The VM will try to fix the ...
通过上述步骤,大部分“library is not loaded”的问题都能得到解决。在处理这类问题时,耐心和仔细排查是关键。如果问题依然存在,可能需要进一步查阅Oracle和Navicat的官方文档,或者寻求社区的帮助。在实际操作中...
Navicat 远程连接 Oracle 时提示oracle library is not loaded 所需文件