2016-09-09 3 views
0

Я хочу отправить сообщение агенту из другого класса, который не является агентом. например, сервлет или основной статический класс.Как выполнить агент JADE из обычного (не агента) класса java?

+0

вы обратили внимание на то, что вы нарушаете парадигму реализации? Не лучше ли создать агента для отправки этого сообщения? – darlinton

+0

Спасибо за ваш комментарий, я не могу изменить класс сервлета, чтобы быть агентом. – amir

+1

Вы пробовали JadeGateway http://jade.tilab.com/doc/tutorials/JadeGateway.pdf? – darlinton

ответ

0

Это oridnary класс не агент:

 MainContainerAgentsRetriever retriever = new MainContainerAgentsRetriever(); 
     JadeGateway.execute(retriever); 
     // At this point the retriever behaviour has been fully executed --> the list of 
     // agents running in the Main Container is available: get it and print it 
     List agents = retriever.getAgents(); 

     if (agents != null) { 
      System.out.println("Agents living in the Main Container: "); 
      for (int i = 0; i < agents.size(); ++i) { 
       System.out.println("- " + ((AID) agents.get(i)).getLocalName()); 

       ACLMessage msg = new ACLMessage(); 
       msg.addReceiver(((AID) agents.get(i))); 
       msg.setContent("salam refigha"); 
       retriever.send(msg); 



      } 
     } 
Смежные вопросы