JMX - remote mit Applikation verbinden

tschousy

Grünschnabel
hallo,
ich hab mir eine mbean geschrieben und eine klasse dafür, bzw andersrum. auf jedenfall habe ich einen (jmx) agenten und einen klienten und ich kann hervorragend lokal bzw remote mit der jconsole auf diese applikation, bzw. dessen jmx service url zugreifen. nun möchte ich das mit meinem eigenen client tun, das funktioniert aber nur lokal, wenn ich es aus meiner vm heraus (keine firewalls aktiviert) versuche bekomme ich das:

Code:
Exception in thread "main" java.net.MalformedURLException: Cannot resolve local host name
   at javax.management.remote.JMXServiceURL.resolveHost(JMXServiceURL.java:71)
   at javax.management.remote.JMXServiceURL.setHost(JMXServiceURL.java:98)
   at javax.management.remote.JMXServiceURL.parseHostAndPort(JMXServiceURL.java:223)
   at javax.management.remote.JMXServiceURL.parse(JMXServiceURL.java:207)
   at javax.management.remote.JMXServiceURL.<init>(JMXServiceURL.java:45)
   at Client.main(Client.java:42)

dann habe ich schnell die service url abgeändert damit er meinen lokalen mbean proxy kennt

"service:jmx:rmi://127.0.0.1/jndi/rmi://12.34.56.78:9012/jmxrmi"

und dann erhalte ich:

Code:
Exception in thread "main" java.io.IOException: javax.naming.CommunicationException: java.rmi.UnexpectedException: undeclared checked exception; nested exception is:
	java.lang.ClassNotFoundException: javax.management.remote.rmi.RMIServerImpl_Stub not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at mx4j.remote.resolver.rmi.Resolver.lookupStubInJNDI(Resolver.java:100)
   at mx4j.remote.resolver.rmi.Resolver.lookupRMIServerStub(Resolver.java:72)
   at mx4j.remote.resolver.rmi.Resolver.lookupClient(Resolver.java:52)
   at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:120)
   at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:38)
   at Client.main(Client.java:44)

der agent wurde mit den entpsrechenden vm argumenten gestartet, somit war es mir auch möglich remote per jconsole auf die applikation zuzugreifen, jedoch verwährt mir mein eigener client dieses atemberaubende spektakel.


ich sollte wohl den code hier posten, aber ich würde gerne wissen ob jemand vorher schon deuten kann auf was mir die exceptions sagen sollten.

dankeschön..
 
Zuletzt bearbeitet:
Hallo Tom,

mit deinem client ist es genau dasselbe. es funktioniert solange client und agent auf demselben host laufen, wenn es jedoch wirklich eine remote connection ist, bekomme ich die exception von meinem ersten post. jedoch kann die jconsole mittels der jmxurl, aus meinem client, auf die applikation zugreifen. es gibt also noch hoffnung : )
 
Zurück