exception - jrmp连接建立嵌套异常期间的jconsole错误是: java. io.EOFException

标签 exception process jconsole

我正在尝试使用jconsole监视远程进程,这是我使用的命令

jconsole -debug localhost:4080

这是我得到的堆栈跟踪
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: 
    java.io.EOFException
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:286)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at sun.tools.jconsole.ProxyClient.checkSslConfig(ProxyClient.java:217)
    at sun.tools.jconsole.ProxyClient.<init>(ProxyClient.java:110)
    at sun.tools.jconsole.ProxyClient.getProxyClient(ProxyClient.java:463)
    at sun.tools.jconsole.JConsole$3.run(JConsole.java:510)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readByte(DataInputStream.java:250)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:228)

如果我将过程的pid提供给jconsole,它就可以成功附加。

最佳答案

我们必须配置tomcat,以允许远程进程连接到它以进行监视

本质上是添加的

CATALINA_OPTS="-Djava.awt.headless=true -Xmx128M -server -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

这将告诉tomcat,它将(例如)从jconsole通过端口7091进行远程监视。

然后用
jconsole localhost:7091

现在,jconsole已成功连接。

关于exception - jrmp连接建立嵌套异常期间的jconsole错误是: java. io.EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741211/

相关文章:

java - 我们应该在哪里使用 commit(session),在 try 还是 finally 中?

python - 返回函数 Python Multiprocessing.Process 的值

有人可以解释一下 C 中 signal() 语法的含义吗?

java - Jconsole 远程可执行 Jar 文件

java - 无法将 jconsole 连接到远程服务器,tomcat 无法启动

java - 使用 jConsole 连接远程 tomcat JMX 实例

exception - Haskell - 检查文件句柄的有效性

C++ 读取文件 : if condition with . fail() 或 try/catch

SQL 性能 - 更好地插入和引发异常或检查是否存在?

linux - 为什么 sudo 在进程组内生成时不起作用?