5

我只是 JADE 的初学者。我想知道如何创建主容器以外的容器并将多个代理添加到其中。完整的创建代码将不胜感激。

谢谢!

4

2 回答 2

7

如 Tafadzwa Chikudo 回答中所述,启动容器的常用方法是从命令行(或在 shell 脚本中)启动 jam.Boot。

但也可以在另一个 Java 程序中进行,使用“JADE 进程内接口”(包jade.wrapper,类jade.core.Runtime)。

例如,以下代码创建一个“外围”容器(连接到 localhost 上的主容器)并在其中启动一个代理。

//Get the JADE runtime interface (singleton)
jade.core.Runtime runtime = jade.core.Runtime.instance();
//Create a Profile, where the launch arguments are stored
Profile profile = new ProfileImpl();
profile.setParameter(Profile.CONTAINER_NAME, "TestContainer");
profile.setParameter(Profile.MAIN_HOST, "localhost");
//create a non-main agent container
ContainerController container = runtime.createAgentContainer(profile);
try {
        AgentController ag = container.createNewAgent("agentnick", 
                                      "my.agent.package.AgentClass", 
                                      new Object[] {});//arguments
        ag.start();
} catch (StaleProxyException e) {
    e.printStackTrace();
}
于 2016-03-16T16:51:56.553 回答
0

外围容器可以按如下方式启动 java jam.Boot -container -host xxxx -agents z:package.agent;y:package.agent 其中 xxxx 是主容器的 ip,z 是您给第一个代理的名称,y是您给第二个代理的名称,package 是在 jar 文件中包含代理的包

于 2015-02-20T17:01:53.260 回答