【发布时间】:2013-06-30 20:28:58
【问题描述】:
我想设置两台运行 jstatd 的服务器,这样我就可以实时监控我的应用程序。 Web 服务器已经启动并运行,但另一台服务器总是出现类似这样的异常。
无法将 /JStatRemoteHost 绑定到 RMI 注册表 java.rmi.ServerException:服务器线程发生RemoteException; 嵌套异常是:java.rmi.UnmarshalException: error 解组论点;嵌套异常是: java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost(无安全管理器:RMI 类 加载程序禁用)在 sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419) 在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267) 在 sun.rmi.transport.Transport$1.run(Transport.java:177) 在 sun.rmi.transport.Transport$1.run(Transport.java:174) 在 java.security.AccessController.doPrivileged(Native Method) 在 sun.rmi.transport.Transport.serviceCall(Transport.java:173) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:722) 在 sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273) 在 sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251) 在 sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377) 在 sun.rmi.registry.RegistryImpl_Stub.rebind(未知来源)在 java.rmi.Naming.rebind(Naming.java:177) 在 sun.tools.jstatd.Jstatd.bind(Jstatd.java:57) 在 sun.tools.jstatd.Jstatd.main(Jstatd.java:143) 原因: java.rmi.UnmarshalException:解组参数错误;嵌套的 例外是:java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost(无安全管理器:RMI 类 加载程序禁用)在 sun.rmi.registry.RegistryImpl_Skel.dispatch(未知来源)在 sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409) 在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267) 在 sun.rmi.transport.Transport$1.run(Transport.java:177) 在 sun.rmi.transport.Transport$1.run(Transport.java:174) 在 java.security.AccessController.doPrivileged(Native Method) 在 sun.rmi.transport.Transport.serviceCall(Transport.java:173) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:722) 引起: java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost(无安全管理器:RMI 类 加载程序禁用)在 sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:554) 在 java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:646) 在 java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:311) 在 sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:263) 在 java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1556) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1512) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) ... 13 更多
我确定 jstatd 加载了内容是的策略文件
授予代码库 "file:${java.home}/../lib/tools.jar" { 权限 java.security.AllPermission; };
我不知道问题出在哪里,请帮忙。
【问题讨论】:
标签: rmiregistry jstatd