use*_*935 5 agents agents-jade
我只是JADE的初学者。我想知道如何创建除主容器之外的其他容器,并向其中添加多个代理。完整的创建代码将不胜感激。
谢谢!
正如Tafadzwa Chikudo回答中所述,启动容器的通常方法是从命令行(或在Shell脚本中)启动jade.Boot。
但是,也可以使用“ JADE进程内接口”(程序包jade.wrapper,类jade.core.Runtime)在另一个Java程序中进行操作。
例如,以下代码创建一个“外围”容器(连接到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();
}
Run Code Online (Sandbox Code Playgroud)
外围容器可以按如下方式启动: javajade.Boot -container -host xxxx -agents z:package.agent;y:package.agent 其中 xxxx 是主容器的 ip,z 是您为第一个代理指定的名称,y是您为第二个代理指定的名称,package 是包含 jar 文件中的代理的包