i connect application via jmx remotely, i've created following configuration in main method:
mbeanserver mbs = managementfactory.getplatformmbeanserver(); jmxserviceurl url = new jmxserviceurl("service:jmx:rmi:///jndi/rmi://localhost:7890/jmxrmi"); map<string, object> envconf = new hashmap<>(); //my custom authenticator envconf.put(jmxconnectorserver.authenticator, new myauthenticator(jmxusername, jmxpassword)); jmxconnectorserver cs = jmxconnectorserverfactory.newjmxconnectorserver(url, envconf, mbs); cs.start(); here how start application:
java -dcom.sun.management.jmxremote -dcom.sun.management.jmxremote.port=7890 -dcom.sun.management.jmxremote.authenticate=false -dcom.sun.management.jmxremote.ssl=false main but seems missing , following exception:
cannot bind url [rmi://localhost:7890/jmxrmi]: javax.naming.nopermissionexception [root exception java.rmi.serverexception: remoteexception occurred in server thread; nested exception is: java.rmi.accessexception: cannot modify registry] java.io.ioexception: cannot bind url [rmi://localhost:7890/jmxrmi]: javax.naming.nopermissionexception [root exception java.rmi.serverexception: remoteexception occurred in server thread; nested exception is: java.rmi.accessexception: cannot modify registry] @ javax.management.remote.rmi.rmiconnectorserver.newioexception(rmiconnectorserver.java:827) @ javax.management.remote.rmi.rmiconnectorserver.start(rmiconnectorserver.java:432) @ test.jms.main.start(jmxmodule.java:35) caused by: javax.naming.nopermissionexception [root exception java.rmi.serverexception: remoteexception occurred in server thread; nested exception is: java.rmi.accessexception: cannot modify registry] @ com.sun.jndi.rmi.registry.registrycontext.bind(registrycontext.java:147) @ com.sun.jndi.toolkit.url.genericurlcontext.bind(genericurlcontext.java:228) @ javax.naming.initialcontext.bind(initialcontext.java:425) @ javax.management.remote.rmi.rmiconnectorserver.bind(rmiconnectorserver.java:644) @ javax.management.remote.rmi.rmiconnectorserver.start(rmiconnectorserver.java:427) ... 4 more caused by: java.rmi.serverexception: remoteexception occurred in server thread; nested exception is: java.rmi.accessexception: cannot modify registry @ sun.rmi.server.unicastserverref.olddispatch(unicastserverref.java:420) @ sun.rmi.server.unicastserverref.dispatch(unicastserverref.java:268) @ sun.rmi.transport.transport$1.run(transport.java:200) @ sun.rmi.transport.transport$1.run(transport.java:197) @ java.security.accesscontroller.doprivileged(native method) @ sun.rmi.transport.transport.servicecall(transport.java:196) @ sun.rmi.transport.tcp.tcptransport.handlemessages(tcptransport.java:568) @ sun.rmi.transport.tcp.tcptransport$connectionhandler.run0(tcptransport.java:826) @ sun.rmi.transport.tcp.tcptransport$connectionhandler.lambda$run$254(tcptransport.java:683) @ sun.rmi.transport.tcp.tcptransport$connectionhandler$$lambda$13/8098086.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ sun.rmi.transport.tcp.tcptransport$connectionhandler.run(tcptransport.java:682) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ java.lang.thread.run(thread.java:745) @ sun.rmi.transport.streamremotecall.exceptionreceivedfromserver(streamremotecall.java:276) @ sun.rmi.transport.streamremotecall.executecall(streamremotecall.java:253) @ sun.rmi.server.unicastref.invoke(unicastref.java:379) @ sun.rmi.registry.registryimpl_stub.bind(unknown source) @ com.sun.jndi.rmi.registry.registrycontext.bind(registrycontext.java:141) ... 8 more caused by: java.rmi.accessexception: cannot modify registry @ sun.management.jmxremote.singleentryregistry.bind(singleentryregistry.java:76) @ sun.rmi.registry.registryimpl_skel.dispatch(unknown source) @ sun.rmi.server.unicastserverref.olddispatch(unicastserverref.java:410) @ sun.rmi.server.unicastserverref.dispatch(unicastserverref.java:268) @ sun.rmi.transport.transport$1.run(transport.java:200) @ sun.rmi.transport.transport$1.run(transport.java:197) @ java.security.accesscontroller.doprivileged(native method) @ sun.rmi.transport.transport.servicecall(transport.java:196) @ sun.rmi.transport.tcp.tcptransport.handlemessages(tcptransport.java:568) @ sun.rmi.transport.tcp.tcptransport$connectionhandler.run0(tcptransport.java:826) @ sun.rmi.transport.tcp.tcptransport$connectionhandler.lambda$run$254(tcptransport.java:683) @ sun.rmi.transport.tcp.tcptransport$connectionhandler$$lambda$13/8098086.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ sun.rmi.transport.tcp.tcptransport$connectionhandler.run(tcptransport.java:682) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ java.lang.thread.run(thread.java:745) could please point me wrong?
the problem didn't have rmi registry running, running command in console:
rmiregistry or adding line of code before start of server:
locateregistry.createregistry(1099); solves issue.
Comments
Post a Comment