2015-07-14 6 views
3

Я пытаюсь подключиться к удаленному процессу Java, который работает на другой машине, используя инструмент JConsole на моей машине Ubuntu.java.lang.SecurityException: Expecting sun.rmi.server.UnicastRef2 удаленная ссылка в stub

Это, как я запустить программу Java в удаленной машине:

Sudo Java -Dcom.sun.management.jmxremote.port = 51082 -Dcom.sun.management.jmxremote.authenticate = ложь -Dcom.sun.management.jmxremote.ssl = ложь -jar myfile.jar

Я бегу команду Jconsole на моей машине, как это:

JConsole -debug -J-Djava.util. L ogging.config.file = Logging.properties

Это мой Logging.properties файл:

handlers = java.util.logging.ConsoleHandler 

sun.rmi.level=FINEST 
.level = INFO 

java.util.logging.ConsoleHandler.level = FINEST 

java.util.logging.ConsoleHandler.formatter = \ 

java.util.logging.SimpleFormatter 

// Use FINER or FINEST for javax.management.remote.level - FINEST is 

// very verbose... 

javax.management.level = FINEST 

javax.management.remote.level = FINER 

Теперь на моем Jconsle UI я дал ниже свойства:

enter image description here

Когда я нажмите на кнопку Connect. Я получаю исключение:

FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi:///jndi/rmi://my-remote-host:51082/jmxrmi] failed to connect: java.lang.SecurityException: Expecting a sun.rmi.server.UnicastRef2 remote reference in stub! 
    java.lang.SecurityException: Expecting a sun.rmi.server.UnicastRef2 remote reference in stub! 

This is the complete stacktrace of the exception as per logs: 

Jul 14, 2015 7:39:55 PM RMIConnector connect 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi:///jndi/rmi://my-remote-host:51082/jmxrmi] connecting... 
Jul 14, 2015 7:39:55 PM RMIConnector connect 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi:///jndi/rmi://my-remote-host:51082/jmxrmi] finding stub... 
Jul 14, 2015 7:39:55 PM sun.rmi.transport.tcp.TCPEndpoint <clinit> 
FINE: VMPanel.connect: localHostKnown = true, localHost = 127.0.0.8 
Jul 14, 2015 7:39:55 PM sun.rmi.server.UnicastRef newCall 
FINE: VMPanel.connect: get connection 
Jul 14, 2015 7:39:55 PM sun.rmi.transport.tcp.TCPTransport <init> 
FINE: VMPanel.connect: Version = 2, ep = [127.0.0.8:0] 
Jul 14, 2015 7:39:55 PM sun.rmi.transport.tcp.TCPEndpoint getLocalEndpoint 
FINE: VMPanel.connect: created local endpoint for socket factory null on port 0 
Jul 14, 2015 7:39:55 PM sun.rmi.transport.tcp.TCPChannel createConnection 
FINE: VMPanel.connect: create connection 
Jul 14, 2015 7:39:55 PM sun.rmi.transport.tcp.TCPEndpoint newSocket 
FINER: VMPanel.connect: opening socket to [my-remote-host:51082] 
Jul 14, 2015 7:39:55 PM sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket 
FINE: VMPanel.connect: host: my-remote-host, port: 51082 
Jul 14, 2015 7:39:58 PM sun.rmi.transport.tcp.TCPChannel createConnection 
FINER: VMPanel.connect: server suggested 10.56.36.2:36585 
Jul 14, 2015 7:39:58 PM sun.rmi.transport.tcp.TCPChannel createConnection 
FINER: VMPanel.connect: using 127.0.0.8:0 
Jul 14, 2015 7:39:58 PM sun.rmi.server.UnicastRef newCall 
FINER: VMPanel.connect: create call context 
Jul 14, 2015 7:39:58 PM sun.rmi.server.UnicastRef logClientCall 
FINER: VMPanel.connect: outbound call: [endpoint:[my-remote-host:51082](remote),objID:[0:0:0, 0]] : sun.rmi.registry.RegistryImpl_Stub[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String) 
Jul 14, 2015 7:39:58 PM sun.rmi.transport.StreamRemoteCall <init> 
FINER: VMPanel.connect: write remote call header... 
Jul 14, 2015 7:39:58 PM sun.rmi.transport.StreamRemoteCall getOutputStream 
FINER: VMPanel.connect: getting output stream 
Jul 14, 2015 7:39:58 PM sun.rmi.server.UnicastRef invoke 
FINER: VMPanel.connect: execute call 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.StreamRemoteCall getInputStream 
FINER: VMPanel.connect: getting input stream 
Jul 14, 2015 7:39:59 PM sun.rmi.server.LoaderHandler loadClass 
FINE: VMPanel.connect: name = "javax.management.remote.rmi.RMIServerImpl_Stub", codebase = "", defaultLoader = [email protected] 
Jul 14, 2015 7:39:59 PM sun.rmi.server.LoaderHandler loadClass 
FINER: VMPanel.connect: class "javax.management.remote.rmi.RMIServerImpl_Stub" found via defaultLoader, defined by null 
Jul 14, 2015 7:39:59 PM sun.rmi.server.LoaderHandler loadClass 
FINE: VMPanel.connect: name = "java.rmi.server.RemoteStub", codebase = "", defaultLoader = [email protected] 
Jul 14, 2015 7:39:59 PM sun.rmi.server.LoaderHandler loadClass 
FINER: VMPanel.connect: class "java.rmi.server.RemoteStub" found via defaultLoader, defined by null 
Jul 14, 2015 7:39:59 PM sun.rmi.server.LoaderHandler loadClass 
FINE: VMPanel.connect: name = "java.rmi.server.RemoteObject", codebase = "", defaultLoader = [email protected] 
Jul 14, 2015 7:39:59 PM sun.rmi.server.LoaderHandler loadClass 
FINER: VMPanel.connect: class "java.rmi.server.RemoteObject" found via defaultLoader, defined by null 
Jul 14, 2015 7:39:59 PM sun.rmi.server.UnicastRef done 
FINE: VMPanel.connect: free connection (reuse = true) 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.tcp.TCPChannel free 
FINE: VMPanel.connect: reuse connection 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.tcp.TCPChannel free 
FINE: VMPanel.connect: create reaper 
Jul 14, 2015 7:39:59 PM sun.rmi.server.UnicastRef newCall 
FINE: VMPanel.connect: get connection 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.tcp.TCPChannel createConnection 
FINE: VMPanel.connect: create connection 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.tcp.TCPEndpoint newSocket 
FINER: VMPanel.connect: opening socket to [127.0.1.1:57675] 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket 
FINE: VMPanel.connect: host: 127.0.1.1, port: 57675 
Jul 14, 2015 7:39:59 PM sun.rmi.server.UnicastRef newCall 
FINE: RMI RenewClean-[127.0.1.1:57675]: get connection 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.tcp.TCPChannel createConnection 
FINE: RMI RenewClean-[127.0.1.1:57675]: create connection 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.tcp.TCPEndpoint newSocket 
FINER: RMI RenewClean-[127.0.1.1:57675]: opening socket to [127.0.1.1:57675] 
Jul 14, 2015 7:39:59 PM sun.rmi.transport.WeakRef pin 
FINER: VMPanel.connect: strongRef = [email protected] 
Jul 14, 2015 7:40:00 PM sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket 
FINE: RMI RenewClean-[127.0.1.1:57675]: host: 127.0.1.1, port: 57675 
Jul 14, 2015 7:40:00 PM sun.rmi.transport.ObjectTable putTarget 
FINER: VMPanel.connect: add object [0:0:0, 2] 
Jul 14, 2015 7:40:00 PM sun.rmi.transport.ConnectionInputStream done 
FINER: VMPanel.connect: send ack 
Jul 14, 2015 7:40:00 PM sun.rmi.transport.tcp.TCPChannel newConnection 
FINE: VMPanel.connect: reuse connection 
Jul 14, 2015 7:40:00 PM sun.rmi.transport.tcp.TCPChannel free 
FINE: VMPanel.connect: reuse connection 
Jul 14, 2015 7:40:00 PM RMIConnector connect 
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi:///jndi/rmi://my-remote-host:51082/jmxrmi] failed to connect: java.lang.SecurityException: Expecting a sun.rmi.server.UnicastRef2 remote reference in stub! 
java.lang.SecurityException: Expecting a sun.rmi.server.UnicastRef2 remote reference in stub! 
    at javax.management.remote.rmi.RMIConnector.checkStub(RMIConnector.java:1871) 
    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:295) 
    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:268) 
    at sun.tools.jconsole.ProxyClient.tryConnect(ProxyClient.java:357) 
    at sun.tools.jconsole.ProxyClient.connect(ProxyClient.java:313) 
    at sun.tools.jconsole.VMPanel$2.run(VMPanel.java:292) 
Jul 14, 2015 7:40:01 PM sun.rmi.server.UnicastRef newCall 
FINE: RMI RenewClean-[127.0.1.1:57675]: get connection 
Jul 14, 2015 7:40:01 PM sun.rmi.transport.tcp.TCPChannel createConnection 

Я не могу понять, в чем проблема.

обновление:

Я могу подключиться к удаленному хосту для данного порта:

telnet my_remote_host 51082 

По this link, я получил ответ от хозяина без каких-либо проблем.

+0

возможно дубликат [Java Jconsole JMX Сбой подключения] (http://stackoverflow.com/questions/8734981/java-jconsole-jmx-connection-failure) – durron597

+0

@ durron597, подробности об ошибках, данные ОП отличается в этой должности по сравнению с той, которую я получаю – Chaitanya

ответ

2

Пожалуйста, используйте нижеследующие настройки. Я также столкнулся с такой же проблемой, но после того, как был указан ниже настроек

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -Dcom .sun.management.jmxremote.port = 9704 -Djava.rmi.server.hostname = 172.18.137.35 -Dcom.sun.management.jmxremote.rmi.port = 9704 "

Пожалуйста, обратите внимание на Djava.rmi. server.hostname и Dcom.sun.management.jmxremote.rmi.port, даже после этих настроек он запросит небезопасное соединение, пожалуйста, примите его как да, тогда вы сможете подключиться (больной тогда он даст вам ошибку "не удалось подключиться : java.lang.SecurityException: Ожидание удаленной ссылки sun.rmi.server.UnicastRef2 в заглушке! "). Надежда