jacob.dll уже загружен в другой загрузчик классов

Я реализовал веб-сервис в java и клиент веб-сервиса также в java. оба веб-сервиса и клиент веб-сервиса находятся в другом проекте, и я создал dll с помощью jacob.

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

исключение

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 уже загружена в другой загрузчик классов


person tapanmodh    schedule 17.02.2012    source источник


Ответы (1)


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

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

person Pablo    schedule 17.02.2012
comment
Спасибо, Пабло. Я использую сервер Glassfish, поэтому, как вы сказали, jacob.jar и jacob.dll будут помещены в папку lib Glassfish?? - person tapanmodh; 17.02.2012