मैं जावा प्रोग्राम में एम्बेडेड जेएडी चलाता हूं, यानी java jade.Boot ...
के साथ नहीं। अब मैं जेएडीई सिस्टम को रोकना चाहता था, लेकिन मुझे ऐसा करने का कोई अच्छा तरीका नहीं मिला है। मैं System.exit() का उपयोग कर पूरे प्रोग्राम से बाहर निकल सकता हूं, लेकिन यह वह नहीं है जो मैं करना चाहता हूं।एक जेएडीई सिस्टम (जावा एजेंट) को रोकें
मैं कई अलग अलग बातें करने की कोशिश की, और मैं अपने एजेंट व्यवहार, रोक सफल लेकिन धागे की एक जोड़ी उनका प्रदर्शन जारी रहेगा: एम्स, डीएफ, एक वेब सर्वर, जेड टाइमर डिस्पैचर, कई उद्धारकर्ता धागे, आदि
यह कैसे मेरे वर्तमान बंद विधि की तरह लग रहा है:
@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') है। उन लोगों के साथ समस्या यह है कि मैं उन धागे को मार नहीं सकता जो वे चल रहे हैं, क्योंकि वे इंटरप्टेड अपवादों को अनदेखा करते हैं ... –