Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Glassfish 如何使用本地语言。玻璃鱼3.1也是如此_Glassfish_Native Methods - Fatal编程技术网

Glassfish 如何使用本地语言。玻璃鱼3.1也是如此

Glassfish 如何使用本地语言。玻璃鱼3.1也是如此,glassfish,native-methods,Glassfish,Native Methods,我正在尝试为嵌入式设备构建一个web界面,它将显示网络统计信息。我使用的是Glassfish 3.1应用服务器,我想使用jnetpcap来监听网络流量。jnetpcap依赖于libpcap本机库。我曾试图从Oracle中找到有关在Glassfish中使用本机库的文档,但我还没有找到我要查找的内容(而且我可能找错了东西) 当我的servlet加载时,它会失败 原因:java.lang.NoClassDefFoundError:无法初始化类org.jnetpcap.Pcap 我的解释是,类加载器可以

我正在尝试为嵌入式设备构建一个web界面,它将显示网络统计信息。我使用的是Glassfish 3.1应用服务器,我想使用jnetpcap来监听网络流量。jnetpcap依赖于libpcap本机库。我曾试图从Oracle中找到有关在Glassfish中使用本机库的文档,但我还没有找到我要查找的内容(而且我可能找错了东西)

当我的servlet加载时,它会失败

原因:java.lang.NoClassDefFoundError:无法初始化类org.jnetpcap.Pcap

我的解释是,类加载器可以找到类(我在部署它时将它指定为库),但无法加载它。我的第一个推论是,这可能是一个安全策略问题,或者jvm找不到libpcap.so

我使用配置->服务器配置->jvm设置在管理控制台(即web界面)中设置system.library.path的路径。在“路径设置”选项卡中,我将路径“/usr/bin/libpcap.so”放在本机库路径后缀字段中。当我重新启动Glassfish服务器时,我收到以下消息:

[#2011-03-31T13:30:13.962+1100 |警告| glassfish3.1 | null |..GlassFishConfigBean.com.sun.enterprise.config.serverbeans.JavaConfig},当=1308613961 |时,reason=JavaConfig属性'NativeLibraryPathSuffix'从'null'更改为'/usr/bin/libpcap.so'

随后在日志中,本机库路径出现在路径输出中

-Djava.library.path=/usr/lib64:/lib64:/lib:/usr/lib:/usr/bin/libpcap.so

因此,我认为本机库正在成功加载。有什么方法可以检查本机库是否确实已加载

我还禁用了安全管理器(只是暂时尝试让servlet工作;我计划在它工作后实施更微妙的安全策略),但这也没有解决问题

我是否正在尝试正确加载本机库?我如何找到有关是否加载本机库以及org.jnetpcap.Pcap类无法初始化的更多信息

谢谢, 蒂姆

好的,解决了

问题是jnetpcap依赖于libjnetpcap.so而不是libpcap.so。我的错误

在JVM路径设置的本机库路径后缀字段中添加了路径正确路径(/stuff/../libjnetpcap-1.3.b4),这是所有系统都可以使用的