Eclipse 中的 JADE ICP 异常

JADE in Eclipse ICP exception

我想开始在 Eclipse 中编写 JADE。为此,我添加了 Java Agent Development Framework - Eclipse and Maven integration.

提供的以下脚本

我做了代理:

public class Test extends Agent {

    private static final long serialVersionUID = 1L;

    String nickname = "Peter";
    AID id = new AID(nickname, AID.ISLOCALNAME);


    protected void setup() {
        // Printout a welcome message
        System.out.println("Hello! Buyer-agent " +getAID().getName()+ " is ready.");
    }
}

当我 运行 我的 JadeBootThread.run() 具有以下参数时:

private final String ACTOR_NAMES_args = "buyer:test.Test";

private final String GUI_args = "-gui";

我收到以下错误:

Jan 29, 2015 5:33:33 PM jade.core.Runtime beginContainer
INFO: ----------------------------------
    This is JADE 4.3.3 - revision 6726 of 2014/12/09 09:33:02
    downloaded in Open Source, under LGPL restrictions,
    at http://jade.tilab.com/
----------------------------------------
Jan 29, 2015 5:33:33 PM jade.imtp.leap.CommandDispatcher addICP
WARNING: Error adding ICP jade.imtp.leap.JICP.JICPPeer@71e070c0[Cannot bind server socket to localhost port 1099].
Jan 29, 2015 5:33:33 PM jade.core.AgentContainerImpl joinPlatform
SEVERE: Communication failure while joining agent platform: No ICP active
jade.core.IMTPException: No ICP active
 at jade.imtp.leap.LEAPIMTPManager.initialize(LEAPIMTPManager.java:138)
 at jade.core.AgentContainerImpl.init(AgentContainerImpl.java:319)
 at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:492)
 at jade.core.Runtime.createMainContainer(Runtime.java:166)
 at jade.Boot.main(Boot.java:89)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at main.JadeBootThread.run(JadeBootThread.java:33)
 at main.Main.main(Main.java:7)
Jan 29, 2015 5:33:33 PM jade.core.Runtime run
INFO: JADE is closing down now.

我试着弄乱了 private final String GUI_args = "-gui";参数并添加了“-local-port 1111”但这给出了完全相同的错误(错误中的端口也保持为 1099)

在 运行将代码作为 eclipse 中的参数时添加以下内容

-gui -host 192.168.2.9 -port 12344 
agentttt:com.DAO.test_agents.PingAgent

然后将 main class 命名为

jade.Boot

然后只需 运行 添加了所有外部 jar 文件的代码,我想这不会产生任何 ICP 错误。

另一种方法可能是检查另一个程序是否使用该端口,从而阻止 JADE 正确启动。 您可以使用 windows

中的 netstat 找出哪个程序正在使用哪个端口

How can you find out which process is listening on a port on Windows?

在我的例子中是 Dropbox。我启动 Dropbox,关闭它并再次启动 JADE --> 这样工作得很好 :)