0

I'm trying to connect JVisualVM to jstatd. However on my remote server I'm having issues starting jstatd.

#  netstat -nlp | grep rmiregistry
tcp        0      0 0.0.0.0:1098                0.0.0.0:*                   LISTEN      7320/rmiregistry
tcp        0      0 0.0.0.0:34872               0.0.0.0:*                   LISTEN      7320/rmiregistry

The error

# ./jstatd -J-Djava.security.policy=jstatd.all.policy -p 1098
Could not bind //:1098/JStatRemoteHost to RMI Registry
java.rmi.UnexpectedException: undeclared checked exception; nested exception is:
        java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
        at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
        at java.rmi.Naming.rebind(Naming.java:177)
        at sun.tools.jstatd.Jstatd.bind(Jstatd.java:57)
        at sun.tools.jstatd.Jstatd.main(Jstatd.java:143)
Caused by: java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
        ... 4 more
DarVar
  • 16,882
  • 29
  • 97
  • 146

1 Answers1

0

You are using wrong JDK. This sun.jvmstat.monitor.remote.RemoteHost not found in gnu.gcj.runtime.SystemClassLoader shows that you are using GCJ to run Jstatd. Please use OpenJDK or Oracle JDK.

Tomas Hurka
  • 6,723
  • 29
  • 38