J'ai tenter de faire une application rmi de base pour tester. Elle fonctionne très bien en local, mais elle plante dès que je tente de l'utiliser à distanse.

J'ai trouvé des posts concernant ce problème mais rien ne semble foncionner. J'ai joint à mon post le résultat de l'exécution de mon appliquation avec le plus d'information possible et le code de mon application.

je vais laissé mon serveur ouvert pendant un certain temps si vous voulez essayer.

-----côté serveur--------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 package test;
 
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.RMIClientSocketFactory;
import java.rmi.server.RMISocketFactory;
import java.rmi.server.UnicastRemoteObject;
 
public class Server extends UnicastRemoteObject implements Interface 
{
 
    protected Server() throws RemoteException
    {
        super();
    }
 
    /**
     * 
     */
    private static final long serialVersionUID = -8515732983219125758L;
 
    public String sayHello() throws RemoteException
    {
        return "Hello";
    }
 
    public static void main(String args[])
    {
 
        try
        {
            Server obj = new Server();
            LocateRegistry.createRegistry(1099);
            Registry registry = LocateRegistry.getRegistry();
            registry.rebind("Interface", obj);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
-----côté client--------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 package test;
 
import java.rmi.Naming;
 
public class Client
{
 
    private Client()
    {
    }
 
    public static void main(String[] args)
    { 
        String serveur = "darksid.no-ip.biz";
        if(args.length != 0)
            serveur = args[0];
        try
        {
            System.out.println(1);
            Interface stub = (Interface) Naming.lookup("rmi://" + serveur + "/Interface");
            System.out.println(2);
            String response = stub.sayHello();
            System.out.println(3);
            System.out.println("response: " + response);
        }
        catch (Exception e)
        {
            System.err.println("Client exception: " + e.toString());
            e.printStackTrace();
        }
    }
}
--------interface----------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 package test;
 
import java.rmi.Remote;
import java.rmi.RemoteException;
 
public interface Interface extends Remote
{
    String sayHello() throws RemoteException;
}
------- log -------
C:\Users\Claude\Desktop>java -jar -Drmi.debug=true -Dsun.rmi.log.debug=true -Dsun.rmi.transport.lo
gLevel=VERBOSE -Dsun.rmi.transport.tcp.logLevel=VERBOSE -Dsun.rmi.server.logLeve
l=VERBOSE -Dsun.rmi.loader.logLevel=VERBOSE ./clientRMI.jar
1
2007-08-12 18:39:53 sun.rmi.transport.tcp.TCPEndpoint <clinit>
FIN: main: localHostKnown = true, localHost = 192.167.0.103
2007-08-12 18:39:53 sun.rmi.server.UnicastRef newCall
FIN: main: get connection
2007-08-12 18:39:53 sun.rmi.transport.tcp.TCPTransport <init>
FIN: main: Version = 2, ep = [192.167.0.103:0]
2007-08-12 18:39:53 sun.rmi.transport.tcp.TCPEndpoint getLocalEndpoint
FIN: main: created local endpoint for socket factory null on port 0
2007-08-12 18:39:53 sun.rmi.transport.tcp.TCPChannel createConnection
FIN: main: create connection
2007-08-12 18:39:53 sun.rmi.transport.tcp.TCPEndpoint newSocket
PLUS FIN: main: opening socket to [darksid.no-ip.biz:1099]
2007-08-12 18:39:53 sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FIN: main: host: darksid.no-ip.biz, port: 1099
2007-08-12 18:39:54 sun.rmi.transport.tcp.TCPChannel createConnection
PLUS FIN: main: server suggested 70.48.135.237:52373
2007-08-12 18:39:54 sun.rmi.transport.tcp.TCPChannel createConnection
PLUS FIN: main: using 192.167.0.103:0
2007-08-12 18:39:54 sun.rmi.server.UnicastRef newCall
PLUS FIN: main: create call context
2007-08-12 18:39:54 sun.rmi.transport.StreamRemoteCall <init>
PLUS FIN: main: write remote call header...
2007-08-12 18:39:54 sun.rmi.transport.StreamRemoteCall getOutputStream
PLUS FIN: main: getting output stream
2007-08-12 18:39:54 sun.rmi.server.UnicastRef invoke
PLUS FIN: main: execute call
2007-08-12 18:39:54 sun.rmi.transport.StreamRemoteCall getInputStream
PLUS FIN: main: getting input stream
2007-08-12 18:39:54 sun.rmi.server.LoaderHandler loadClass
FIN: main: name = "test.Server_Stub", codebase = "", defaultLoader = sun.misc.La
uncher$AppClassLoader@11b86e7
2007-08-12 18:39:54 sun.rmi.server.LoaderHandler loadClass
PLUS FIN: main: class "test.Server_Stub" found via defaultLoader, defined by sun
.misc.Launcher$AppClassLoader@11b86e7
2007-08-12 18:39:54 sun.rmi.server.LoaderHandler loadClass
FIN: main: name = "java.rmi.server.RemoteStub", codebase = "", defaultLoader = s
un.misc.Launcher$AppClassLoader@11b86e7
2007-08-12 18:39:54 sun.rmi.server.LoaderHandler loadClass
PLUS FIN: main: class "java.rmi.server.RemoteStub" found via defaultLoader, defi
ned by null
2007-08-12 18:39:54 sun.rmi.server.LoaderHandler loadClass
FIN: main: name = "java.rmi.server.RemoteObject", codebase = "", defaultLoader =
sun.misc.Launcher$AppClassLoader@11b86e7
2007-08-12 18:39:54 sun.rmi.server.LoaderHandler loadClass
PLUS FIN: main: class "java.rmi.server.RemoteObject" found via defaultLoader, de
fined by null
2007-08-12 18:39:54 sun.rmi.server.UnicastRef done
FIN: main: free connection (reuse = true)
2007-08-12 18:39:54 sun.rmi.transport.tcp.TCPChannel free
FIN: main: reuse connection
2007-08-12 18:39:54 sun.rmi.transport.tcp.TCPChannel free
FIN: main: create reaper
2007-08-12 18:39:54 sun.rmi.server.UnicastRef newCall
FIN: main: get connection
2007-08-12 18:39:54 sun.rmi.transport.tcp.TCPChannel createConnection
FIN: main: create connection
2007-08-12 18:39:54 sun.rmi.transport.tcp.TCPEndpoint newSocket
PLUS FIN: main: opening socket to [127.0.0.1:53750]
2007-08-12 18:39:54 sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FIN: main: host: 127.0.0.1, port: 53750
2007-08-12 18:39:55 sun.rmi.server.UnicastRef newCall
FIN: RMI RenewClean-[127.0.0.1:53750]: get connection
2007-08-12 18:39:55 sun.rmi.transport.tcp.TCPChannel createConnection
FIN: RMI RenewClean-[127.0.0.1:53750]: create connection
2007-08-12 18:39:55 sun.rmi.transport.tcp.TCPChannel newConnection
FIN: main: reuse connection
2007-08-12 18:39:55 sun.rmi.transport.tcp.TCPEndpoint newSocket
PLUS FIN: RMI RenewClean-[127.0.0.1:53750]: opening socket to [127.0.0.1:53750]
2007-08-12 18:39:55 sun.rmi.transport.tcp.TCPChannel free
FIN: main: reuse connection
2
2007-08-12 18:39:55 sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FIN: RMI RenewClean-[127.0.0.1:53750]: host: 127.0.0.1, port: 53750
2007-08-12 18:39:55 sun.rmi.server.UnicastRef invoke
PLUS FIN: main: method: public abstract java.lang.String test.Interface.sayHello
() throws java.rmi.RemoteException
2007-08-12 18:39:55 sun.rmi.transport.tcp.TCPChannel createConnection
FIN: main: create connection
2007-08-12 18:39:55 sun.rmi.transport.tcp.TCPEndpoint newSocket
PLUS FIN: main: opening socket to [127.0.0.1:53750]
2007-08-12 18:39:55 sun.rmi.transport.proxy.RMIMasterSocketFactory createSocket
FIN: main: host: 127.0.0.1, port: 53750
Client exception: java.rmi.ConnectException: Connection refused to host: 127.0.0
.1; nested exception is:
java.net.ConnectException: Connection refused: connect
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested excepti
on is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at test.Server_Stub.sayHello(Unknown Source)
at test.Client.main(Client.java:23)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown S
ource)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown S
ource)
... 6 more