我正在尝试将同一Spring-Boot应用程序的两个版本(主版本,开发版本)部署到Tomcat 8服务器中,但是我无法加载需要工作的DLL。
如果我部署单个版本的应用程序(无论是主版本还是开发版本),它的工作原理就像一个魅力,但是如果我尝试部署另一个版本,则抛出java.lang.UnsatisfiedLinkError
。
DLL位于Tomcat的bin文件夹中。
看起来我无法同时从两个应用程序加载DLL(从未听说过),或者以某种方式第二个应用程序正在其他地方寻找它们...
对于每个应用程序,我都有不同的配置文件,并且我尝试以各种方式指定DLL的位置:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Parameter name="spring.profiles.active" value="production"/>
<Parameter name="spring.config.location" value="<path to properties>"/>
<!-- This did not work -->
<Environment name="LD_LIBRARY_PATH" value="<Path to DLLs>" type="java.lang.String"/>
<!-- Neither did this -->
<Environment name="java.library.path" value="<Path to DLLs>" type="java.lang.String"/>
</Context>
是否有任何方法告诉Tomcat为每个应用程序从不同的文件夹加载DLL?
为什么我不能为它们两个使用相同的DLL?
任何帮助将不胜感激。
根据https://stackoverflow.com/a/12530284/4530226,您似乎无法在单个JVM上两次加载DLL,因此我们通过安装两个不同的Tomcat服务器来“修复”它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句