当前位置: 首页 > 知识库问答 >
问题:

tomcat jni jar位置和应用程序重新加载

湛宜春
2023-03-14

我有一个servlet,它使用了通过JNI共享的librared,我在tomcat9下遇到了以前在tomcat7上没有的问题。

共享库本身位于java(LD LIBRARY)路径上,因此由tomcat OK拾取。但是,我在放置相应jar文件的位置上遇到了问题。

如果我将jar文件放在webapps/WEB-INF/lib中并重新启动tomcat,一切正常。但是,如果我使用Web管理器界面重新加载应用程序。servlet不再工作并给出

java.lang.UnsatisfiedLinkError:本机库/usr/lib/jvm/java-14-openjdk-amd64/lib/libjniast。因此已经加载到另一个类加载器中

随后

java.lang.NoClassDefFound错误:

在tomcat7中,将jar放在webapp-lib-dir中似乎没有问题,但我想知道行为是否发生了变化。

我确实尝试将jar文件移动到一个共享目录(/usr/share/tomcat9/lib/?)但是在那里它不工作(被捡起来)。

jar应该放在哪里,这样重新加载应用程序不会破坏一切?

谢谢

共有1个答案

程枫
2023-03-14

还有另一个相关的 jar 文件。当两者都被放置在/usr/share/tomcat9/lib/中时,事情就可以正常工作,我可以毫无问题地重新加载。

 类似资料:
  • 我正致力于通过为我的Nexus 5创建我自己的定制ROM来更好地理解Android内部。我想,首先,我应该尝试制作一个ROM,删除Nexus 5 Lollipop factory映像中我不使用的许多应用程序。 我想摆脱的一些应用程序:适合电子邮件(此应用程序仅指向gmail)播放书籍(我是老派,我仍然喜欢纸质书籍)玩游戏玩新台 有各种.mk文件将使用PRODUCT_PACKAGES来选择要构建包含

  • 两个命令“NPM run Build”和“PM2 reload All”使用ansible引发错误,但在目标服务器上这些命令运行良好 目标服务器上的pm2位置:即pm2 pm2://home/ubuntu/.nvm/versions/node/v12.10.0/bin/pm2 {“changed”:false,“cmd”:“pm2全部重新加载”,“msg”:“[Errno 2]没有这样的文件或目录

  • 问题内容: 我有一个加载DLL来执行处理的特定部分的应用程序 Process.dll 使用反射 在运行时动态加载 ,并且未在应用程序中引用。 处理完成后,需要在服务器上重新编译DLL,然后稍后再次加载。 为此,我需要释放它,否则会收到以下消息:“无法将文件“ Process.dll”复制到“ Process.dll”。该进程无法访问文件“ Process.dll”,因为被另一个进程使用。” 因此,

  • 我正在使用IntelliJ IDEA15和tomcat开发一个AngularJS和Spring Boot应用程序,每当我对静态内容进行更改时,我总是要重新启动应用程序才能看到这些更改。 我找了一个类似的问题,我发现了这个: 启用html和javascript文件的IntelliJ热交换

  • 我试图在Docker中使用Create React App和Node js设置一个开发环境。但当我更改代码时,它不会重新加载更改 通常只使用卷就足够了,但我还添加了:CHOKIDAR\u USEPOLLING=true in ENV,正如create react app官方文档所说,我将代码移到了WSL,因为我在Windows 10上,但仍然是一样的。我用create react app创建了另一

  • 问题内容: 我愿意在应用程序中添加一个按钮,单击该按钮将重新启动该应用程序。我搜索谷歌,但没有发现任何有用的,除了这一个。但是,此处遵循的过程违反了Java的WORA概念。 是否有其他以Java为中心的方法来实现此功能?是否可以只派生另一个副本然后退出? 提前致谢。我感谢您的帮助。 @deporter我已经尝试过您的解决方案,但是它不起作用:( @mKorbel我写的,采取的概念下面的代码,你曾在