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

jrmp连接建立期间的jconsole错误嵌套异常为:java.io.EOFException,exception,process,jconsole,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

我正在尝试使用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)
java.rmi.ConnectionException:JRMP连接建立过程中出错;嵌套异常是:
java.io.EOFException
位于sun.rmi.transport.tcp.tcpcchannel.createConnection(tcpcchannel.java:286)
位于sun.rmi.transport.tcp.tcpcchannel.newConnection(tcpcchannel.java:184)
位于sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
位于sun.rmi.registry.RegistryImpl\u Stub.lookup(未知源)
位于sun.tools.jconsole.ProxyClient.checkSslConfig(ProxyClient.java:217)
位于sun.tools.jconsole.ProxyClient.(ProxyClient.java:110)
位于sun.tools.jconsole.ProxyClient.getProxyClient(ProxyClient.java:463)
位于sun.tools.jconsole.jconsole$3.run(jconsole.java:510)
原因:java.io.EOFException
位于java.io.DataInputStream.readByte(DataInputStream.java:250)
位于sun.rmi.transport.tcp.tcpcchannel.createConnection(tcpcchannel.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

jconsole localhost:7091

现在jconsole成功连接

嗨,我也遇到了同样的异常。我应该在tomcat中配置哪个文件。谢谢,您必须将这些添加到catalina。shI在端口7091上成功连接,但我的webapp正在端口8080上运行。我不熟悉监视,如果我在端口7091上监视,我是否仍能看到我的webapp对服务器的内存影响?@KasparTr,是的,您会看到,所有事件都会中继到调试端口。这就是你能够连接和监控应用程序指标的方式。