关于rmi的问题,搞了我3天了头都大死了实在没有办法了
我写了两个rmi的程序,问题都出在:HelloIn hi=(HelloIn)Naming.lookup("rmi://localhost:1099/hello");上,我改了很多方法但是都是没有用总是出下下面的信息:
java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Naming.java:84)
at rmitest.Helloworld.main(Helloworld.java:11)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:426)
at java.net.Socket.connect(Socket.java:376)
at java.net.Socket.<init>(Socket.java:291)
at java.net.Socket.<init>(Socket.java:119)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
... 6 more
麻烦了,请帮我个忙吧
还有我想请问下在jb9里面如果一切都弄好了那么在运行application时mainclass是不是设置为Clinet端的class?如果是那么服务器端的class不是要先运行吗怎么回事呢?
问题点数:20、回复次数:18Top
1 楼linseng129(IT届的菜鸟)回复于 2005-04-04 00:35:36 得分 0
对不起出错信息贴错了应该是:
java.rmi.NotBoundException: hello
at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:106)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:342)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:207)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:350)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Naming.java:84)
at rmitest.Helloworld.main(Helloworld.java:11)
Top
2 楼linseng129(IT届的菜鸟)回复于 2005-04-04 00:35:57 得分 0
第一个是后来我改了端口的出错信息Top
3 楼jscorpio(米有)回复于 2005-04-04 01:17:29 得分 10
在wizards里选Extenal Build Task,建rmic的pre-compile命令;
然后在runtime configuration里对服务器端的class建rmic命令的config;
修改JB自带JDK里的java.policy文件:
添加grand{permission java.security.Allpermission;};;
在tool里点击RMIregistry启动注册表;
运行:
1--〉rmic的congfig
2-->客户端class的config
Top
4 楼linseng129(IT届的菜鸟)回复于 2005-04-04 10:07:22 得分 0
rmic的pre-compile命令;这句没看懂Top
5 楼linseng129(IT届的菜鸟)回复于 2005-04-04 10:49:46 得分 0
顶``````````帮帮忙啊!!!Top
6 楼linseng129(IT届的菜鸟)回复于 2005-04-04 13:56:41 得分 0
ding
Top
7 楼poron9(上帝之手)回复于 2005-04-11 13:14:23 得分 5
帮你顶Top
8 楼zhutouzip(醒了的鸟)回复于 2005-04-11 13:20:14 得分 5
你的registry服务开了没啊
在命令行下输入start rmiregistry 1099启动1099端口Top
9 楼linseng129(IT届的菜鸟)回复于 2005-04-11 13:23:52 得分 0
registry服务当然开了,我是在jb9中调试的,先在tools里面把rmiregistry打开,然后先在server端的,再开client端的对吗Top
10 楼zhutouzip(醒了的鸟)回复于 2005-04-11 13:33:38 得分 0
没错啊!你的权限文件修改了么!
Top
11 楼linseng129(IT届的菜鸟)回复于 2005-04-11 13:37:46 得分 0
改了啊,改为:grant
{
permission java.net.SocketPermission"*:1024-65535",
"listen,accept,connect";
};Top
12 楼talenty(残越)回复于 2005-04-11 13:53:33 得分 0
顶Top
13 楼linseng129(IT届的菜鸟)回复于 2005-04-11 20:49:36 得分 0
顶~~~~Top
14 楼linseng129(IT届的菜鸟)回复于 2005-04-11 20:50:25 得分 0
顶~~~~`Top
15 楼linseng129(IT届的菜鸟)回复于 2005-04-12 09:31:52 得分 0
顶~~~~~~~~~~``Top
16 楼tpz_stamp(Stamp)回复于 2005-04-12 09:56:51 得分 0
hello没有绑定Top
17 楼linseng129(IT届的菜鸟)回复于 2005-04-12 10:27:32 得分 0
hello绑定了
String name = "//localhost/hello";
RLoginObject hello = new RLoginObject(this);
Naming.rebind(name, hello);Top
18 楼linseng129(IT届的菜鸟)回复于 2005-04-12 14:49:29 得分 0
ding ~~~~~~```Top




