Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

RMI dietro a un router

1 view
Skip to first unread message

CarMas

unread,
Jul 31, 2007, 7:25:01 AM7/31/07
to
Scusate, non capisco se RMI coi router ha dei problemi, se sono io ad essere ritardato o se semplicemente sia l'effetto 31 luglio...
Il mio server, che sta dietro ad un router, fa delle cose stupidissime, giusto per capire:

LocateRegistry.createRegistry(1099);
MyObject obj = new MyObject();
Naming.rebind("//local_ip:1099/TEST" , obj);

poi lo lancio con l'opzione -Djava.rmi.server.hostname=ip_pubblico
e ho impostato il port forwarding della 1099 verso local_ip

Il client invece:
IMyObject remoteObject = (IMyObject)Naming.lookup("//ip_pubblico:1099/TEST");
System.out.println("Lookup ok");
int val=remoteObject.sum(1,2);
System.out.println("val="+val);

Ma qui nascono i problemi!
L'output e' solo "Lookup ok", poi mi arriva una java.rmi.ConnectException: connection timeout

Accetto umilmente qualsiasi consiglio!!

Saluti
CarMas

CarMas

unread,
Jul 31, 2007, 7:39:59 AM7/31/07
to
> L'output e' solo "Lookup ok", poi mi arriva una java.rmi.ConnectException: connection timeout

Se puo' interessare lo stacktrace

java.rmi.ConnectException: Connection refused to host: ip_pubblico; nested exception is:
java.net.ConnectException: Connection timed out: connect
java.rmi.ConnectException: Connection refused to host: ip_pubblico; nested exception is:
java.net.ConnectException: Connection timed out: 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.invoke(UnicastRef.java:101)
at SampleServerImpl_Stub.sum(Unknown Source)
at SampleClient.main(SampleClient.java:16)
Caused by: java.net.ConnectException: Connection timed out: 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:452)
at java.net.Socket.connect(Socket.java:402)
at java.net.Socket.<init>(Socket.java:309)
at java.net.Socket.<init>(Socket.java:124)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFact
ory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFact
ory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
... 5 more

?_?
sembra quasi che usi un'altra porta rispetto alla 1099... possibile?

Saluti
CarMas

OcchioDiDrago

unread,
Jul 31, 2007, 9:21:40 AM7/31/07
to
CarMas (31/07/2007 13.39.59):

>> L'output e' solo "Lookup ok", poi mi arriva una java.rmi.ConnectException:
>> connection timeout
>
> Se puo' interessare lo stacktrace
>

[cut]


>
> ?_?
> sembra quasi che usi un'altra porta rispetto alla 1099... possibile?
>
> Saluti
> CarMas

No assolutamente (i numeri dopo i ".java" indicano il numero di riga
del corrispondente file sorgente)

Semplice: la porta 1099 sull'IP pubblico è chiusa (firewall et
similia). Puoi provare tu stesso con un telnet

telnet ip_pubblico 1099

Sistema i firewall e le regole di routing, e assicurati di poter almeno
aprire la connessione con telnet prima di tentare con il client RMI.

--
Scientology: se la conosci la eviti, se la conosci non ti uccide...
http://xenu.com-it.net - http://xenu.freewinds.cx - http://www.xenu.net
(per rispondere personalmente leva IlDitoDalCulo)
---> 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 <---


0 new messages