【问题标题】:UnsatisfiedLinkError - Native Library - jnidispatch.dllUnsatisfiedLinkError - 本机库 - jnidispatch.dll
【发布时间】:2015-10-16 13:47:53
【问题描述】:

我在使用 waffle 和 tomcat 7 启用通过 Windows 身份验证登录时遇到问题。

一切正常,但每次我部署应用程序时,都会出现此错误:

java.lang.UnsatisfiedLinkError: Native Library C:\Program Files    (x86)\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\seedInventory\loader\com\sun\jna\win32-x86\jnidispatch.dll already loaded in another classloader

当我重新启动 tomcat 时,它又开始工作了。然而,我想成为 无需重新启动即可部署应用程序。

我看到这个文件 jnidispatch.dll 即使在取消部署后仍在使用,我无法手动删除它。

我能做什么?

【问题讨论】:

    标签: java tomcat dll java-native-interface waffle


    【解决方案1】:

    查看 Apache Tomcat HowTo 部分关于在 Tomcat 下使用 JNI 时的类加载器问题。它说:

    关于在 Tomcat 下使用 JNI 需要了解的重要一点是,不能将本机库或其 JNI 接口放在 Web 应用程序的 WEB-INF/lib 或 WEB-INF/classes 目录下,并期望能够重新加载webapp 无需重启服务器。

    因此,您的某些库似乎包含本机 jnidispatch.dll 库,您应该将其从 jar 或 war 移到 Tomcat 的 lib 文件夹中,以便重新部署您的应用程序。

    【讨论】:

    • 谢谢,我将 dll 移到了 tomcat lib 文件夹,并从我的项目中删除了 jna.jar 依赖项。这样,我可以在不重新启动服务器的情况下部署应用程序。
    猜你喜欢
    • 2013-02-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多