jacob.dll уже загружен в другой загрузчик классов - PullRequest
3 голосов
/ 17 февраля 2012

Я внедрен веб-сервис в Java и клиент веб-сервиса также в Java.оба клиента webservice и webservice находятся в разных проектах, и я создан dll с использованием jacob.

Мой клиент Webservice и webservice находится на одном компьютере. Теперь, когда я вызываю webservice с помощью клиента webservice, возникают следующие исключения.

исключение

org.apache.jasper.JasperException: javax.xml.ws.soap.SOAPFaultException: собственная библиотека C: \ Program Files (x86) \ Java \ jdk1.6.0_24 \ bin \jacob.dll уже загружен в другую корневую причину загрузчика классов

javax.xml.ws.soap.SOAPFaultException: Собственная библиотека C: \ Program Files (x86) \ Java \ jdk1.6.0_24 \ bin \ jacob.dll ужезагружен в другой основной причине загрузчика классов

java.lang.UnsatisfiedLinkError: Собственная библиотека C: \ Program Files (x86) \ Java \ jdk1.6.0_24 \ bin \ jacob.dll уже загружена в другой загрузчик классов

1 Ответ

6 голосов
/ 17 февраля 2012

jacob.dll может быть загружен только один раз для каждого экземпляра JVM. Если библиотека jacob.jar загружена более одного раза, она также попытается загрузить jacob.dll более одного раза.

Чтобы избежать этого, удалите jacob.jar из обоих веб-сервисов и поместите в какое-то место, где он может быть найден загрузчиком классов, который оба веб-сервиса совместно используют, таким образом, jacob. баночка будет загружена только один раз. Например, если вы используете tomcat, поместите jacob.jar в каталог / lib этого tomcat.

...