Работа с JADE в Eclipse: Создание первого агента!
Автор: Алексей Скороходов
Для создания агента как видно из названия нам понадобится JADE, eclipse и jdk.
После того, как все это извлечено из архивов и установлено, мы можем создать своего первого агента на платформе JADE (Java Agent DEvelopment Framework). Не будем нарушать традиции и первым нашим агентом будет агент «HelloWorld».
Сначала необходимо создать Java-проект нашего агента в среде Eclipse и подключить JADE к этому проекту (см. Рис 1.)
Рисунок 1.
Далее, в полученном проекте в папке src создаем Package c именем «hello». Теперь пришла очередь создать class с именем «HelloWorld» .
Ну и наконец код агента. В нашем случае он будет выглядеть так:
package hello;
import jade.core.Agent;
public class HelloWorld extends Agent
{
public void setup()
{
System.out.println(”Hello Yuhana, my name is : ” +getAID().getName());
}
}
Теперь необходимо подключить JADE (рис. 2 и 3).
Рисунок 2.
Кликаем на кнопку с именем «Add External JARs» и указываем путь к библиотекам JADE, в моем случае это «D:\diplom\stop\bin\jade\lib».
Результат наших действий:
Рисунок 3.
Перед тем как запустить нашего агента необходимо настроить параметры запуска проекта. Это можно сделать выбрав в выпадающем меню «Open Run Dialog», как показано на рис. 4.
Рисунок 4.
Далее, необходимо для «Java Application» создать новую конфигурацию. Во вкладке «Main» присвоим имя нашей конфигурации «test_agents». В «Main class» при нажатии кнопки «Search» выбираем «Boot — jade» и ставил «галочку» в «Include system libraries when searching for a main class» (см. Рис. 5 ).
Рисунок 5.
Далее, во вкладке «Arguments» в «Program argument» добавляем строку «-gui jade.Boot test:hello.HelloWorld»!!!
Ну вот и все, запускаем и получаем агента, выполнившего элементарное действие:
Рисунок 6.
14 комментария к этой записи
Оставить комментарий






Здравствуйте! Я сделала все так, как Вы описали. После запуска получаю следующую ошибку:
17.06.2008 22:34:16 jade.core.Runtime beginContainer
INFO: ———————————-
This is JADE 3.6 – revision 6032 of 2008/05/05 14:07:10
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
—————————————-
17.06.2008 22:34:17 jade.core.AgentContainerImpl joinPlatform
SCHWERWIEGEND: Some problem occurred while joining agent platform.
jade.core.ProfileException: Can’t get a proxy to the Platform Manager [nested jade.core.IMTPException: The Service Manager was already bound in the RMI Registry [nested java.rmi.AlreadyBoundException: ServiceManager]]
at jade.core.ProfileImpl.createPlatformManager(ProfileImpl.java:574)
at jade.core.ProfileImpl.getPlatformManager(ProfileImpl.java:487)
at jade.core.ProfileImpl.getServiceManager(ProfileImpl.java:501)
at jade.core.AgentContainerImpl.init(AgentContainerImpl.java:336)
at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:472)
at jade.core.Runtime.createMainContainer(Runtime.java:148)
at jade.Boot.(Boot.java:130)
at jade.Boot.main(Boot.java:70)
Nested Exception:
jade.core.IMTPException: The Service Manager was already bound in the RMI Registry [nested java.rmi.AlreadyBoundException: ServiceManager]
at jade.imtp.rmi.RMIIMTPManager.exportPlatformManager(RMIIMTPManager.java:275)
at jade.core.ProfileImpl.createPlatformManager(ProfileImpl.java:563)
at jade.core.ProfileImpl.getPlatformManager(ProfileImpl.java:487)
at jade.core.ProfileImpl.getServiceManager(ProfileImpl.java:501)
at jade.core.AgentContainerImpl.init(AgentContainerImpl.java:336)
at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:472)
at jade.core.Runtime.createMainContainer(Runtime.java:148)
at jade.Boot.(Boot.java:130)
at jade.Boot.main(Boot.java:70)
Nested Exception:
java.rmi.AlreadyBoundException: ServiceManager
at sun.rmi.registry.RegistryImpl.bind(Unknown Source)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at java.rmi.Naming.bind(Unknown Source)
at jade.imtp.rmi.RMIIMTPManager.exportPlatformManager(RMIIMTPManager.java:224)
at jade.core.ProfileImpl.createPlatformManager(ProfileImpl.java:563)
at jade.core.ProfileImpl.getPlatformManager(ProfileImpl.java:487)
at jade.core.ProfileImpl.getServiceManager(ProfileImpl.java:501)
at jade.core.AgentContainerImpl.init(AgentContainerImpl.java:336)
at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:472)
at jade.core.Runtime.createMainContainer(Runtime.java:148)
at jade.Boot.(Boot.java:130)
at jade.Boot.main(Boot.java:70)
17.06.2008 22:34:17 jade.core.Runtime$1 run
INFO: JADE is closing down now.
Не подскажите ли, где может быть ошибка?
С уважением
Elina
Ошибку выдает Eclipse какой версии?
КАкая платформа (win, lin)? какая версия java машины используется?
Эта проблема возникает когда у вашего компьютера не назначено ip — адреса. Что бы все заработало я знаю два способа:
1 Это руками присвоить ip — адрес (Не наш способ которым я какое то время пользовался ))))
2 Это к строке «-gui jade.Boot test:hello.HelloWorld» добвать «-detect-main false» и в итоге получим «-detect-main false -gui jade.Boot test:hello.HelloWorld».
Надеюсь что помог. Спасибо вам, за то что используете то что я написал (приятно )))))
Извините что так поздно ответил новую работу искал )))
Круто – заработало!
Привет. Скажи, пожалуйста. А где можно скачать jdk, а то ссылка в посте не работает, а очень хотелось бы попробовать с JADE поэкспериментировать!
http://java.sun.com/javase/dow.....t/jdk6.jsp
у меня при старте выдаёт
02.11.2010 19:51:43 jade.Boot parseCmdLineArgs
WARNUNG: WARNING: ignoring command line argument test:hello.HelloWorld occurring after agents specification
02.11.2010 19:51:43 jade.Boot parseCmdLineArgs
WARNUNG: Note that agent specifications must be separated by a semicolon character «;» without spaces
02.11.2010 19:51:43 jade.core.Runtime beginContainer
INFO: ———————————-
This is JADE snapshot – revision 6357 of 2010/07/06 16:27:34
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
—————————————-
Retrieving CommandDispatcher for platform null
02.11.2010 19:51:43 jade.imtp.leap.CommandDispatcher addICP
WARNUNG: Error adding ICP jade.imtp.leap.JICP.JICPPeer@24e2dae9[Error: Not possible to launch JADE on a remote host (127.0.1.1). Check the -host and -local-host options.].
02.11.2010 19:51:43 jade.core.AgentContainerImpl joinPlatform
SCHWERWIEGEND: 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:316)
at jade.core.AgentContainerImpl.joinPlatform(AgentContainerImpl.java:482)
at jade.core.Runtime.createMainContainer(Runtime.java:165)
at jade.Boot.main(Boot.java:89)
02.11.2010 19:51:43 jade.core.Runtime$1 run
INFO: JADE is closing down now.
что делать и как ему указать явнo ip?
ps os ubuntu, openjdk+jade 4.0.1, ip на wlan 192.168.0.11
Отвечают на вопросы по теме здесь http://forum.semanticfuture.ne......php?id=10
igo, это похоже на проблему с айпишником. А Вы пробовали добавить в строку аргументов «-detect-main false», как описано в предыдущих комментариях?
я же читал другие комментарии, поэтому у меня прописанно так
-detect-main false; -gui; jade.Boot test:hello.HelloWorld
семиколоны потому что без них выдаёт ошибки, проблема решилась втыканием lan, чем не устрол wlan, так и не понял
спасибо за оперативность
У меня JADE запускается, а вот никакого нового агента test там нет, инициализацию тоже не выполняет, хотя все делал, как тут написано, с чем это может быть связано?
более полный источник материалов по JADE – http://semanticfuture.net/inde.....0%B8%D0%B8
здраувствуйте сергей!
Я использовал Jade 3.6 для С#.
Я создаль 2 проекта клиент и сервера.
На сервере (main-container) и имеет агент с названием «server».
На клиенте (container-1) и имеет агент с названием «client».
При тестировании:
Сервер на компьютере А.
Клиент на компьютер Б.
Если компьютер А и компьютер Б в локальной сети-они нормально работают.
Ксли Компьютер А – имеет глобальной адрес, компьютер Б в локальной сети но можно доступ в интернете, тогда имеет ошибка container-1 unreachable.
Скажите мне пожалуйста как решить эту проблему?
Спасибо за ранее!