Uruchamiam JADE osadzone w programie Java, tj. Nie z java jade.Boot ...
. Teraz chciałem zatrzymać system JADE, ale nie znalazłem dobrego sposobu na zrobienie tego. Mogę wyjść z całego programu przy użyciu System.exit(), ale to nie jest to, co chcę zrobić.Zatrzymaj system JADE (agenty Java)
Próbowałem kilka różnych rzeczy, i udało mi się zatrzymać moich zachowań pełnomocnika, ale kilka wątków nadal działa: AMS, DF, serwer WWW, dyspozytor JADE Timer, kilka wątków Wybawiciel itp
ten sposób moja obecna metoda zamykania wygląda następująco:
@Override
public void shutdown() {
// TODO This does not work yet..
try {
for (WeakReference<AgentController> acr : agents) {
AgentController ac = acr.get(); // jade.wrapper.AgentController
if (ac != null) ac.kill();
}
container.kill(); // jade.wrapper.AgentContainer
Runtime.instance().shutDown(); // jade.core.Runtime
} catch (StaleProxyException e) {
e.printStackTrace();
}
}
powód chcę zrobić to jest, że mam kilka testów JUnit dla mojego systemu agenta.
Jakieś pomysły, jak to osiągnąć?
mam jeszcze kilka wystąpień Deliverer biegania ('jade.core.messaging.MessageManager $ Deliverer'). Problem polega na tym, że nie mogę zabić wątków, na których działają, ponieważ ignorują InterruptedExceptions ... –