2015-10-16 85 views
1

我有一個問題,使用waffle和tomcat 7啓用登錄通過Windows身份驗證。UnsatisfiedLinkError - 原生庫 - jnidispatch.dll

一切工作正常,但每次我部署應用程序,我得到這個錯誤:

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仍在使用,即使在取消部署後我也無法手動將其刪除。

我該怎麼辦?

回答

1

查看Apache Tomcat HowTo有關在Tomcat下使用JNI時類加載器問題的部分。它說,認爲:

The important thing to know about using JNI under Tomcat is that one cannot place the native libraries OR their JNI interfaces under the WEB-INF/lib or WEB-INF/classes directories of a web application and expect to be able to reload the webapp without restarting the server.

所以,現在看來,你的一些庫包含本地jnidispatch.dll lib中,你應該搬出罐子或戰爭到Tomcat的lib文件夾,使人們有可能重新部署你的申請。

+0

謝謝,我將DLL移動到tomcat lib文件夾,並從我的項目中刪除了jna.jar依賴項。這樣,我可以在不重新啓動服務器的情況下部署應用程序。 – henriquels