首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在ubuntu服务器上启动jstatd

无法在ubuntu服务器上启动jstatd
EN

Stack Overflow用户
提问于 2013-06-30 20:28:58
回答 1查看 7K关注 0票数 1

我想安装两个运行jstatd的服务器,这样我就可以动态地监视我的应用程序了。web服务器已经启动并运行,但是另一台服务器总是会出现这样的异常。

无法将/JStatRemoteHost绑定到RMI注册表java.rmi.ServerException: RemoteException发生在服务器线程中;嵌套的异常是: java.rmi.UnmarshalException: error解组参数;嵌套的例外是: sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security上的java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost (没有禁用安全管理器: RMI类加载程序禁用)。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) at java.lang.Thread.run(Thread.java:722) 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) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)( .java:177) at sun.tools.jstatd.Jstatd.bind(Jstatd.java:57) at sun.tools.jstatd.Jstatd.main(Jstatd.java:143),原因是: java.rmi.UnmarshalException:错误解组参数;嵌套的例外是: sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source上的java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost (没有安全管理器: RMI类加载器禁用)、sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)上的java.lang.ClassNotFoundException、sun.rmi.transport.Transport$1.run(Transport.java:177)上的sun.rmi.transport。在java.security.AccessController.doPrivileged(Native方法运行(Transport.java:174)在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) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722),由: java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost (无安全管理器: RMI类加载器禁用)在sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:554) at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:646) atjava.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:311) at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:263) at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1556) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1512) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348) at java.io.ObjectInputStream.readObject(ObjectInputStream( .java:370) . 13

我确信jstatd加载了策略文件,其中的内容是

授予代码基文件:${java.home}/../lib/tools.jar“{ java.security.AllPermission;};

我想不出是什么问题,请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2013-07-26 21:32:20

我和你有同样的问题。

据我所知,异常发生在rmi注册表端,因为它找不到位于tools.jar中的类tools.jar。

在我的例子中,解决方案是在启动java.rmi.server.codebase rmiregistry时指定属性。指定代码基属性之后,问题就消失了。请尝试使用以下用于Linux/Solaris的命令启动rmiregistry:

-J-Djava.rmi.server.codebase=file:${java.home}/../lib/tools.jar &

或者适用于Windows (虽然我没有完全测试它)

启动rmiregistry -J-Djava.rmi.server.codebase="%JAVA_HOME%/../lib/tools.jar“

希望它能帮到你。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17394562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档