java - 使用较新版本的 jna 库在 Glassfish 上运行 Web 应用程序

标签 java glassfish classloader jna waffle

我有一个应在 glassfish 上运行的 Web 应用程序。

应用程序使用jna版本4.1.0,并且jna-4.1.0.jar与应用程序一起打包在其中>lib 文件夹。

但是,据我所知,glassfish 本身使用 jna 库的 3.1 版本,并且它被打包在内部 ibpam4j-repackaged.jar 位于以下路径:

('C:/Program Files/glassfish-4.1.1/glassfish/modules')

结果 - 应用程序没有运行,并且抛出

java.lang.NoSuchMethodError: com.sun.jna.Pointer.getWideString(J)Ljava/lang/String;

因为使用了错误版本的库。

有什么想法可以解决这个问题吗?

谢谢。

(顺便说一下,它本身不是我的应用程序 - 我只是想在 glassfish 上运行 waffle 示例)

最佳答案

原来如此设定 <class-loader delegate="false"/> glassfish-web.xml 就可以了。

现在一切正常。

关于java - 使用较新版本的 jna 库在 Glassfish 上运行 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888563/

相关文章:

java - 在java spring中使用ActiveMq为多个项目创建公共(public)代理

java - Glassfish 服务器不适用于 JDK 8

java - 使用 Java 类加载器获取堆栈跟踪

java - Class.forName 导致类加载器移至终身代?

java - 如何将 WorkManager 与 GlassFish 3 结合使用?

Javassist:ClassPool.makeClass() 的副作用?

java - 将 Web 应用程序部署到 Amazon elastic beanstalk 时出错

Java多线程同步问题?

java - 如何使用 Maven 将本地 jar 作为依赖项添加到 fat jar?

java - 并发 session 独立的 Java Web 应用程序?