3

我在java中实现了一个webservice,也在java中实现了webservice客户端。webservice 和 webservice 客户端都在不同的项目中,我是使用 jacob 创建的 dll。

我的 Web 服务和 Web 服务客户端在同一台计算机上。现在,每当我使用 Web 服务客户端调用 Web 服务时,都会遇到以下异常。

例外

org.apache.jasper.JasperException: javax.xml.ws.soap.SOAPFaultException: Native Library C:\Program Files (x86)\Java\jdk1.6.0_24\bin\jacob.dll 已经加载到另一个类加载器根本原因

javax.xml.ws.soap.SOAPFaultException: Native Library C:\Program Files (x86)\Java\jdk1.6.0_24\bin\jacob.dll 已经加载到另一个类加载器根本原因

java.lang.UnsatisfiedLinkError: Native Library C:\Program Files (x86)\Java\jdk1.6.0_24\bin\jacob.dll 已经加载到另一个类加载器中

4

1 回答 1

7

对于 JVM 的每个实例,jacob.dll 只能加载一次。如果库 jacob.jar 被多次加载,它也会尝试多次加载 jacob.dll。

为避免这种情况,请从两个 Web 服务中删除jacob.jar并将其放在两个 Web 服务共享的类加载器可以找到的某个位置,这样 jacob.jar 将只加载一次。例如,如果您使用的是 tomcat,请将 jacob.jar 放在该 tomcat 的 /lib 目录中。

于 2012-02-17T13:06:49.183 回答