如何在两个容器中运行Jade代理(来自两个控制台)

时间:2012-10-19 14:57:05

标签: java containers agents-jade

我是Jade的新人,正在研究Jade Primer。我正在使用最新版本的Jade v4.2。 我正在尝试设置两个行为,每个行为都编码为接收消息。我应该在两个独立的窗口中运行它们,但它对我不起作用。

我在WinXp上使用Eclipse。我已经进入了Jade的classpath

c:\jade\lib\jade.jar;C:\jade\lib\commons-codec\commons-codec-1.3.jar;C:\Program Files\Java\jre7\bin 

以及包含我的项目的文件夹

C:\Users\me\workspace\jadeProject\src

有文件夹 primer4 (添加到Java代码中的包),我放置了我的Java文件。 我通过 javac 从控制台编译了Java文件。

然后我尝试从控制台运行(来自 primar4 文件夹):

%java jade.Boot -agents a1:primer4.Responder;a2:primer4.Responder

第一个命令正在运行。然后我运行第二个控制台窗口并输入:

%java jade.Boot -container main:primer4.Template

INFO: Service jade.core.event.Notification initialized
pač 19, 2012 4:35:57 PM jade.core.AgentContainerImpl startBootstrapAgents
SEVERE: Cannot create agent main: Class primer4.Template for agent ( agent identifier 

:name main@10.0.2.15:1099/JADE ) not found [nested java.lang.ClassNotFoundException: primer4.Template]
pač 19, 2012 4:35:57 PM jade.core.AgentContainerImpl joinPlatform
INFO: Agent container Container-2@10.0.2.15 is ready.

我收到了这个错误,有人可以告诉我:

  1. 我该如何解决?
  2. 是否可以在控制台的一行中(在同一个控制台中,同一时间)在两个容器中运行代理?

2 个答案:

答案 0 :(得分:2)

尝试第二个命令中的-agents选项:

java jade.Boot -container -agents main:primer4.Template

答案 1 :(得分:0)

这是Classpath问题。因此,请确保在类路径中包含.class文件的目录。

您可以通过

为每个容器创建一个代理

-container选项。

或者您可以通过

创建代理
jade.core.Runtime runtime = jade.core.Runtime.instance();

jade.wrapper.AgentContainer home = runtime.createAgentContainer(new ProfileImpl());

home.createNewAgent(getName(), Agent.class.getName(), args);

像这样你可以创建代理并动态添加。