【问题标题】:JBoss 7 is trying to load modules libraries from JBoss binJBoss 7 正在尝试从 JBoss bin 加载模块库
【发布时间】:2013-01-15 21:10:02
【问题描述】:

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

<?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 调用中崩溃。

【问题讨论】:

  • 兄弟,我在下面的 cmets 中读到我的答案,您以某种方式解决了它。如果是这样,您能回答您自己的问题吗?将有助于其他人登陆这里。谢谢
  • 好话。我所追求的库是随程序一起安装的。我结束了用 JAR 的相对路径编写模块,直接在程序 lib 文件夹中找到它们。对于图书馆,我不必参考它们。它们被加载到系统中,因为程序在机器上作为服务运行。我得到的错误更多是关于那个程序的问题,而不是 JBoss 的问题。
  • 如果您可以将该描述放在页面底部的Answer your own question 中会更好,以防没有任何答案是相关的。问候

标签: linux module jboss7.x


【解决方案1】:

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

在您的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 上添加模块的依赖项才能使其工作

【讨论】:

  • 感谢您的帮助穆库尔。我要找的不是罐子,而是图书馆。如果我在module.xml 中直接引用它,那么 JBoss 会告诉我它无法读取那个奇怪的 jar。无论如何,我通过将我的 LD_LIBRARY_PATH 设置为包含该库的文件夹来成功找到该库。
  • @SylvainSchüpp ,兄弟,你能详细说明一下我非常关注的“图书馆”吗?究竟是什么?什么格式?它像罐子的集合吗?
  • 对于库,我的意思是 Linux 上的 .so 文件,或 Windows 上的 .dll 文件。还有 C/C++ 存档。
  • 在这种情况下检查...stackoverflow.com/questions/12775827/…,
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2014-01-29
      • 2011-12-11
      • 2017-07-18
      • 1970-01-01
      相关资源
      最近更新 更多