9
我運行嵌入到Java程序中的JADE,即不與java jade.Boot ...
。 現在我想停止JADE系統,但我發現沒有好的方法來做到這一點。 我可以使用System.exit()退出整個程序,但這不是我想要做的。停止JADE系統(Java代理)
我嘗試了幾種不同的東西,我成功阻止我的經紀人的行爲, 但夫婦線程繼續運行:在AMS中,DF,web服務器,玉定時調度,幾個拯救線程等
這是我目前的關機方法的樣子:
@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();
}
}
我想這樣做的原因是,我有我的 代理系統的一些JUnit測試。
任何想法如何實現?
我仍然在運行拯救的多個實例('jade.core.messaging.MessageManager $ Deliverer')。這些問題是我不能殺死它們正在運行的線程,因爲它們忽略InterruptedExceptions ... –