gpt4 book ai didi

Java UnmarshalException on shutdown/System.exit 从 MBean 通过 JConsole

转载 作者:行者123 更新时间:2023-11-29 03:42:52 25 4
gpt4 key购买 nike

我想知道当我使用带有 JConsole 的 MBean 远程执行关闭时如何避免出现此异常,该关闭调用 System.exit(1)。我已经确认在未调用关机时我没有异常,因此其他所有设置都正确。错误是:

调用关闭时出现问题:java.rmi.UnmarshalException:解码返回 header 时出错;嵌套异常是:java.io.EOFException

这当然是有道理的!我只是不希望这是错误情况。

最佳答案

这是预料之中的。我假设您的 JMX 操作是启动 System.exit(1) 的原因?这意味着 Jconsole 正在等待来自服务器的响应,并且在套接字关闭之前没有发送任何响应。即使通过 JMX 调用 void 方法也会等待确认,因此 jconsole 可以说“方法已成功调用”。由于服务器正在关闭,您没有收到响应是有道理的。

如果你想避免这种情况,你可以让一个线程 hibernate 一会儿,然后退出。像这样的东西:

 public String jmxShutdown() {
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// ignored
}
System.exit(1);
}
});
return "Shutting down";
}

关于Java UnmarshalException on shutdown/System.exit 从 MBean 通过 JConsole,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com