3

我有一个模块,描述如下:

<?xml version="1.0" encoding="UTF-8"?>  
<module xmlns="urn:jboss:module:1.0" name="com.mymodule">  
  <resources> 
    <resource-root path="myFirstJar.jar" />
    <resource-root path="mySecondJar.jar" />
    <resource-root path="Lib/linux" />
  </resources>
</module>

在我的 jboss-deployment-structure.xml 中:

<jboss-deployment-structure><deployment>
  <dependencies>
    <module name="com.mymodule" />
  </dependencies>
</deployment></jboss-deployment-structure>

找到了 jar 文件,但其中一个文件尝试访问 .so 库。该库存在于“Lib/linux”文件夹中。但是 JBoss 会调查 %JBOSS_HOME%/bin/mylib.so 。我尝试遵循命名约定(参见jboss.org),得到同样的错误:

引起:java.lang.UnsatisfiedLinkError:无法加载库:/usr/local/jboss/jboss-as-7.1.1.Final/bin/mylib.so

我究竟做错了什么?

编辑 如果我将 .so 文件放入我的 JBoss/bin 文件夹中,那么 JVM 会在 JNI 调用中崩溃。

4

3 回答 3

0

我想,这应该可以解决你的问题。

在你module.xml的模块中com.mymodule

<?xml version="1.0" encoding="UTF-8"?>  
<module xmlns="urn:jboss:module:1.0" name="com.mymodule">  
  <resources> 
    <resource-root path="myFirstJar.jar" />
    <resource-root path="mySecondJar.jar" />
    <resource-root path="Lib/linux" />
  </resources>
 <dependencies>
 <module name="javax.api"/>
 <module name="THE JAR IT IS TRYING TO LOOK OUTSIDE"/>
 </dependencies>

</module>

您需要在它所依赖的 jar 上添加模块的依赖项才能使其工作

于 2012-10-17T13:30:15.693 回答
0

尝试将 Lib/linux 重命名为 lib/linux-i686/ 和/或 lib/linux-x86_64/。我们似乎在我们为 org.hornetq 和 org.jboss.as.web 模块提供的模块设置中使用了它

于 2013-01-15T13:10:02.913 回答
0

我所追求的库是随程序一起安装的。我结束了用 JAR 的相对路径编写模块,直接在程序 lib 文件夹中找到它们。对于图书馆,我不必参考它们。它们被加载到系统中,因为程序在机器上作为服务运行。我得到的错误更多是关于那个程序的问题,而不是 JBoss 的问题。

于 2012-11-06T10:48:24.363 回答