Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ubuntu上通过公共IP设置RMI引发NotBoundException_Ubuntu_Applet_Rmi_Static Ip Address - Fatal编程技术网

在ubuntu上通过公共IP设置RMI引发NotBoundException

在ubuntu上通过公共IP设置RMI引发NotBoundException,ubuntu,applet,rmi,static-ip-address,Ubuntu,Applet,Rmi,Static Ip Address,试图在ubuntu上通过公共IP设置RMI,但徒劳无功。我已经设置了http隧道。RMI服务器/小程序客户端在局域网上成功运行,ubuntu作为RMI服务器。通过internet,我能够在1099上将对象导出到固定端口1100上成功地运行服务器。我已经将1099和1100端口转发到ubuntu 192.168.1.XXX的本地IP。我还在rmi服务器和客户端上设置了以下内容 [rmiHostName = public ip] //configuration System.setProperty

试图在ubuntu上通过公共IP设置RMI,但徒劳无功。我已经设置了http隧道。RMI服务器/小程序客户端在局域网上成功运行,ubuntu作为RMI服务器。通过internet,我能够在1099上将对象导出到固定端口1100上成功地运行服务器。我已经将1099和1100端口转发到ubuntu 192.168.1.XXX的本地IP。我还在rmi服务器和客户端上设置了以下内容

[rmiHostName = public ip]

//configuration
System.setProperty("java.security.policy","http://"+rmiHostName+"/basedir/rmi/java.policy");
System.setProperty("java.rmi.server.hostname",  rmiHostName);//external ip address
System.setProperty("java.rmi.server.codebase",http://"+rmiHostName+"/basedir/rmi/xxx-xxx-1.0.jar"); 
然而,我得到了以下例外:

network: Connecting public-ip/cgi-bin/java-rmi.cgi?forward=1099 with proxy=DIRECT
java.rmi.NotBoundException: //public-ip:1099/MyServer
    at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:136)
    at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409)
    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.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:772)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at rmi.source.StellarMessageClient.init(StellarMessageClient.java:99)
    at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
basic: Applet initialized
basic: Starting applet
basic: completed perf rollup
basic: Applet made visible
basic: Applet started
basic: Told clients applet is started
你们能帮我解决这个问题吗

java.rmi.NotBoundException: //public-ip:1099/MyServer

您没有以MyRegistry的名义将远程对象绑定到位于//public ip:1099的注册表中。

谢谢您的快速响应。实际上,我已按如下方式绑定:rmiReg.rebind(“/”+rmiHost+”:“+rmiPort+”/“+”MyServer“,remoteObj);其中rmiHost是ubuntu服务器192.168.1.XX的本地静态ip客户端通过公共静态ip 59.192.XX.zz访问非常感谢。我现在可以将其与公共ip正确绑定。现在客户端小程序正在尝试连接到我的ubuntu服务器上的随机端口。我将客户端小程序引发的错误粘贴到下面:网络:连接到代理=直接网络:连接代理=直接网络:连接代理=直接网络:连接代理=直接java.rmi.ConnectException:连接拒绝主机:公共ip;嵌套的异常是:java.net.ConnectException:Connection拒绝:connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(未知源代码)at java.net.AbstractPlainSocketImpl.connectToAddress(未知源代码)I服务器上只有两个端口打开,即1099和1100。如何修复aplet请求中的端口,使其始终像公共ip:1099一样连接服务器?请帮助。谢谢。我将远程对象绑定到公共ip上,可以从客户端连接注册表。但是,客户端正在尝试通过服务器上的随机端口进行连接,因此无法与服务器通信,因为这些端口未打开。您能帮我吗?