Агент нефритовой ошибки a1 умер без надлежащего завершения.состояние ошибки 2 - PullRequest
0 голосов
/ 25 мая 2018

Я новичок в Джейд, я хочу настроить агент аукциона, который дает время и количество предметов, а затем ... но я получаю эту ошибку

  • Джейд ошибка агента a1 умербез должного прекращения.состояние ошибки 2 мои коды:

    int timeout = Integer.parseInt (JOptionPane.showInputDialog («Что такое время проведения аукциона в секундах?»));

          number=Integer.parseInt(JOptionPane.showInputDialog("What's the number of items?"));
    
          //service registration
          DFAgentDescription dfd = new DFAgentDescription();
          dfd.setName(getAID());
          ServiceDescription sd = new ServiceDescription();
          sd.setType("Uniform-Price-Auction");
          sd.setName("Uniform-Price-Auction");
          dfd.addServices(sd);
          try {
              DFService.register(this, dfd);
          }
          catch (FIPAException fe) {
              fe.printStackTrace();
          }
    
          // Add the behaviour serving queries from buyer agents
          addBehaviour(new getBids());
    
          // Add the behaviour serving purchase orders from buyer agents
          addBehaviour(new DetermineWinner(this,timeout*1000));
    
    
          gui=new ActioneerGUI();
          gui.setVisible(true);
          gui.setlabel1("We want to sell "+number+" items");
          gui.setlabel2("Auction is running...");
    

1 Ответ

0 голосов
/ 03 августа 2018

Учтите, что агент JADE в конце концов является Java-потоком, и, где бы ни возникала ошибка, он будет завершать работу агента или потока (обычно это происходит в классе AgentWrapper, если я прав).

Также имейте в виду, что при вызове JOptionPane (то есть Swing) вы затрагиваете два потока: поток агентов и поток Swing, что, возможно, вызывает проблемы параллелизма.Лучше не путать их;вместо этого используйте интерфейс агента O2A, отделив приложение / визуализацию конечного пользователя от агента.

...