[英]zeroMQ UnsatisfiedLinkError in java application
i have written a application that communicates via zeroMQ with another application. 我已经编写了一个通过ZeroMQ与另一个应用程序进行通信的应用程序。 On my development machine running Ubuntu 13 is all well and working.
在运行Ubuntu 13的开发机器上运行正常。
I do have zeroMQ 4.4.0 installed, also the jzmq java binding did compile without errors. 我确实安装了zeroMQ 4.4.0,而且jzmq java绑定确实编译没有错误。
But on our testing/production server i get this. 但是在我们的测试/生产服务器上我得到了。 The application starts up and from requestInit() it tries to request it's configuration from the main configuration manager over zeroMQ.
应用程序启动,并从requestInit()尝试通过zeroMQ向主配置管理器请求其配置。
bs@server-01:~/$ java -Djava.library.path=/usr/local/lib -jar /home/bs/opengraphchild/jar/opengraph.jar 5000 opengraph1
Params = 5000
Params = opengraph1
Starting Test service ...
Running
TestService.requestInit()
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.zeromq.ZMQ$Socket.nativeInit()V
at org.zeromq.ZMQ$Socket.nativeInit(Native Method)
at org.zeromq.ZMQ$Socket.<clinit>(ZMQ.java:521)
at org.zeromq.ZMQ$Context.socket(ZMQ.java:451)
at bs.core.service.GenericService.initZmqClient(GenericService.java:41)
at bs.service.opengraph.OpenGraph.requestInit(OpenGraph.java:131)
at bs.service.opengraph.OpenGraph.run(OpenGraph.java:62)
at bs.service.opengraph.OpenGraphRunner.main(OpenGraphRunner.java:13)
I could not find anything relevant to my issue so i'm asking you guys. 我找不到与我的问题有关的任何东西,所以我问你们。 Please help :( [don't know if you need to see sourcecode, since it's working on my local machine, but i can add it]
请帮助:( [[不知道您是否需要查看源代码,因为它在我的本地计算机上运行,但是我可以添加它]
output of ldconfig -v | grep zmq
ldconfig -v | grep zmq
输出ldconfig -v | grep zmq
ldconfig -v | grep zmq
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
libzmq.so.3 -> libzmq.so.3.1.0
libjzmq.so.0 -> libjzmq.so.0.0.0
libzmq.so.1 -> libzmq.so.1
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
output of ldd /usr/local/lib/libzmq.so
: ldd /usr/local/lib/libzmq.so
输出:
linux-vdso.so.1 => (0x00007fffcdf7c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f565a105000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5659ee8000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5659be7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5659827000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5659611000)
/lib64/ld-linux-x86-64.so.2 (0x00007f565a56b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5659314000)
output of ldd /usr/local/lib/libjzmq.so
ldd /usr/local/lib/libjzmq.so
输出
linux-vdso.so.1 => (0x00007fffcf322000)
libzmq.so.3 => /usr/local/lib/libzmq.so.3 (0x00007fe7499a8000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe7496a8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe7492e7000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe7490df000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe748ec2000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe748cab000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe7489af000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe749e0c000)
This is what I got to make it work on Windows, OS X and Ubuntu: 这就是我使其能够在Windows,OS X和Ubuntu上运行的原因:
http://sourceforge.net/p/jalgo/code-0/HEAD/tree/trunk/src/org/aso/algo/messaging/bus/zmq/ZMQLoader.java#l17 http://sourceforge.net/p/jalgo/code-0/HEAD/tree/trunk/src/org/aso/algo/messaging/bus/zmq/ZMQLoader.java#l17
The bus package also contains pub/sub establishment so feel free to refer to it. 总线软件包还包含pub / sub场所,因此可以随时参考。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.