使用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即使在取消部署后仍在使用,我无法手动删除它。
我该怎么办?
答案 0 :(得分:1)
在Tomcat下使用JNI时,请查看有关类加载器问题的Apache Tomcat HowTo部分。它说:
了解在Tomcat下使用JNI的重要一点是,不能将本机库或其JNI接口放在Web应用程序的WEB-INF / lib或WEB-INF / classes目录下,并希望能够重新加载没有重新启动服务器的webapp。
所以,似乎你的某些库包含一个本机jnidispatch.dll库,你应该将它从jar或war移到Tomcat的lib文件夹中,以便重新部署你的应用程序。