我有一个讨厌的问题,我希望我可以请求社区的一些帮助....
我有一个Ubuntu 12.04LTS 64位linux 服务器,我在其上运行一个 JADE (没有gui)的实例,它创建一个容器并连接到主RMA上我的本地机器就好了。我看到容器弹出,生活很美好。问题是当我使用代理重新调用同一个实例时 - 它挂起。注意:我已经在64Bit计算机上重新编译了PingAgent示例,其中包含与我的工作站(Windows)相同的Java(8)。这是32比64位的事情还是在Linux上有Jade的问题?
非常感谢任何协助......
以下是详情:
好实例 (没有代理,没有挂起):
生成:
versaggi@drools:/usr/local/jade$ java -classpath lib/jade.jar:classes jade.Boot -container -local-host 50.116.61.17 -host versaggi.game-host.org -port 1099
结果:
Aug 12, 2014 7:35:42 PM jade.core.Runtime beginContainer
INFO: ----------------------------------
This is JADE 4.3.2 - revision 6708 of 2014/03/28 15:19:44
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
----------------------------------------
Aug 12, 2014 7:35:42 PM jade.imtp.leap.LEAPIMTPManager initialize
INFO: Listening for intra-platform commands on address:
- jicp://50.116.61.17:1099
Aug 12, 2014 7:35:43 PM jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
Aug 12, 2014 7:35:43 PM jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
Aug 12, 2014 7:35:43 PM jade.core.BaseService init
INFO: Service jade.core.resource.ResourceManagement initialized
Aug 12, 2014 7:35:43 PM jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
Aug 12, 2014 7:35:43 PM jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
Aug 12, 2014 7:35:43 PM jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Container-7@50.116.61.17 is ready.
--------------------------------------------
错误的实例 (调用中包含的代理,挂起......)
versaggi@drools:/usr/local/jade$ java -classpath lib/jade.jar:classes jade.Boot -container -local-host 50.116.61.17 -host versaggi.game-host.org -port 1099 -**agents** ping1:examples.PingAgent.PingAgent
Aug 12, 2014 7:34:25 PM jade.core.Runtime beginContainer
INFO: ----------------------------------
This is JADE 4.3.2 - revision 6708 of 2014/03/28 15:19:44
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
----------------------------------------
Aug 12, 2014 7:34:25 PM jade.imtp.leap.LEAPIMTPManager initialize
INFO: Listening for intra-platform commands on address:
- jicp://50.116.61.17:1099
Aug 12, 2014 7:34:26 PM jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
Aug 12, 2014 7:34:26 PM jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
Aug 12, 2014 7:34:26 PM jade.core.BaseService init
INFO: Service jade.core.resource.ResourceManagement initialized
Aug 12, 2014 7:34:26 PM jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
Aug 12, 2014 7:34:26 PM jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
**< *** HANGS HERE ***>**
**< *** KILLED FROM RAM HERE ***>**
Aug 12, 2014 7:34:36 PM jade.imtp.leap.NodeSkel executeCommand
WARNING: Error serving H-Command jade.core.management.AgentManagement/8: java.lang.NullPointerException
Aug 12, 2014 7:34:36 PM jade.core.messaging.MessageManager shutdown
INFO: MessageManager shutting down ...
Aug 12, 2014 7:34:36 PM jade.core.Runtime$1 run
INFO: JADE is closing down now.
答案 0 :(得分:0)
我已确定问题的根源,但不一个解决方案,很可能是因为解决方案可能不存在此问题。
JADE容器最终会及时完成(超时后),但代理将不会被实例化(请参阅下面的粗体错误消息)。
问题是我在私有地址10.0.0.12端口1099上的防火墙后面的本地PC上实例化主容器。远程容器在公共Linux服务器上实例化,该服务器实际上通过一个正确连接到我的本地PC在我的本地路由器中将1099规则的端口转发到10.0.0.12的IP。
出现了真正的问题,因为主容器控制远程容器,因此代理通信规定代理通信必须通过10.0.0.12端口1099并将其传送到公共Linux服务器上的远程容器,该服务器立即尝试通过10.0.0.12端口1099实例化代理通信....并因此超时。
在调用JAVA调用时,选项“-host 24.228.171.118 -port 1099”实际指向我的路由器,它执行端口转发 - 它不是启动主容器的PC的IP。
看来这个特殊的设置并不能很好地发挥作用......
你在这里看到了问题......
如果有配置选项我可以用来改变这个(任何人都知道)我会很感激....
versaggi@drools:/usr/local/jade$ java -classpath lib/jade.jar:classes jade.Boot -container -local-host 50.116.61.17 -host 24.228.171.118 -port 1099 -agents ping1:examples.PingAgent.PingAgent
Aug 13, 2014 1:08:20 PM jade.core.Runtime beginContainer
INFO: ----------------------------------
This is JADE 4.3.2 - revision 6708 of 2014/03/28 15:19:44
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
----------------------------------------
Aug 13, 2014 1:08:21 PM jade.imtp.leap.LEAPIMTPManager initialize
INFO: Listening for intra-platform commands on address:
- jicp://50.116.61.17:1099
Aug 13, 2014 1:08:21 PM jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
Aug 13, 2014 1:08:21 PM jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
Aug 13, 2014 1:08:21 PM jade.core.BaseService init
INFO: Service jade.core.resource.ResourceManagement initialized
Aug 13, 2014 1:08:21 PM jade.core.BaseService init
INFO: Service jade.core.mobility.AgentMobility initialized
Aug 13, 2014 1:08:21 PM jade.core.BaseService init
INFO: Service jade.core.event.Notification initialized
2014年8月13日下午1:12:36 jade.core.AgentContainerImpl startBootstrapAgents
严重:无法创建代理ping1:远程对象无法访问 - 导致 by:ICPException发送命令来解决 的 jicp://10.0.0.12:1099 即可。 - 引起:创建连接时出错。 - 引起:连接超时
Aug 13, 2014 1:12:36 PM jade.core.AgentContainerImpl joinPlatform
INFO: --------------------------------------
Agent container Container-3@50.116.61.17 is ready.
--------------------------------------------