Ошибка Java Собственная библиотека уже загружена в другой загрузчик классов - PullRequest
3 голосов
/ 29 февраля 2012

Я использую библиотеку java bonjour (dns_sd.jar) в веб-приложении, работающем на веб-сервере Jboss.

Когда я запускаю сервер, сервлет находит все ресурсы в сети с помощью bonjour и возвращает пользователю. В первый раз все работает отлично, но при повторном развертывании веб-приложения я получаю:

java.lang.UnsatisfiedLinkError: Собственная библиотека C: \ Windows \ System32 \ jdns_sd.dll уже загружена в другой загрузчик классов

Я уже пытался удалить .dll, и то же самое происходит.

Почему он даже ссылается на .dll, если в моем веб-приложении есть библиотека .jar?

У кого-нибудь есть идеи, как это исправить?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2013

Если вы используете JBoss 7, попробуйте переместить файл jar, который использует dll, в модуль JBoss.Перезапустите JBoss, чтобы он поднял модуль.Измените файл MANIFEST.MF так, чтобы он содержал «Зависимости: theNameYouGaveIt».

Где «theNameYouGaveIt» - это имя, которое вы выбрали в файле вашего модуля «yourModule / main / module.xml».

Таким образом, JBoss не перезагружает библиотеку снова и снова.Затем отмените / повторно разверните ваш .ear или .war снова и снова.

0 голосов
/ 29 февраля 2012

вы отменяете работу, прежде чем ее развернуть. вам не нужно удалять файл dll, это совсем не связано с вашей ошибкой. Это ошибка java и jboss. время первоначального развертывания. Поэтому лучше проверить, загружена библиотека или нет, прежде чем загружать библиотеку в следующий раз, если она уже загружена, не загружайте библиотеку.

...