JBoss 7 пытается загрузить библиотеки модулей из корзины JBoss
Я получил модуль, описанный так:
<?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-deploy-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.
3 ответа
Попробуйте переименовать Lib/linux в lib/linux-i686/ и / или lib/linux-x86_64/. Похоже, мы используем это в нашей поставке модуля для модулей org.hornetq и org.jboss.as.web
Библиотеки, которые мне нужны, устанавливаются вместе с программой. Я закончил писать свой модуль с относительным путем к JAR-файлам, находя их прямо в папке lib программы. Для библиотек мне не нужно ссылаться на них. Они загружаются в систему, потому что программа работает как служба на компьютере. Ошибки, которые я получил, были больше связаны с проблемой этой программы, чем с JBoss.
Я думаю, это должно решить вашу проблему.
в вашем 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>
вам нужно добавить зависимость вашего модуля от фляги, от которой он зависит, чтобы он работал