【问题标题】:How can I load a DLL from two different SpringBoot applications on a Tomcat server at the same time?如何同时从 Tomcat 服务器上的两个不同 SpringBoot 应用程序加载 DLL?
【发布时间】:2019-01-30 18:27:33
【问题描述】:

我正在尝试将同一个 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?

任何帮助将不胜感激。

【问题讨论】:

    标签: java spring-boot tomcat dll tomcat8


    【解决方案1】:

    根据https://stackoverflow.com/a/12530284/4530226 看来,您无法在单个 JVM 上两次加载 DLL,因此我们通过拥有两个不同的 Tomcat 服务器来“修复”它。

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 2022-07-11
      • 2014-03-07
      • 2014-02-26
      • 2019-08-03
      • 2011-05-07
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多