Bonjour,
J'ai créer un ProjectEJB, et un client (JavaProject) j'utilise le serveur d'application JBoss,j'ai importé tout les jar nécessaire, et lors de l’exécution du client j'ai cette erreur :

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
 
Context lookup finished
Exception in thread "main" javax.naming.NameNotFoundException: File not bound
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
	at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
	at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
	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:808)
	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 org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at Client.Client.main(Client.java:26)
voici mon code du 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
33
34
35
36
37
38
package Client;
 
import java.io.File;
import java.util.Properties;
 
import javax.naming.InitialContext;
import javax.naming.NamingException;
 
import Pile_File.FileLocal;
import Pile_File.Pile;
import Pile_File.PileLocal;
 
public class Client {
 
	public static void main(String[] args)throws NamingException {
		// TODO Auto-generated method stub
		Properties props = System.getProperties();     
        props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
        props.put("java.naming.provider.url", "localhost:1099");
 
		//pour povoir intéroger JNDI (annuaire du serveur
		 InitialContext context= new InitialContext(props);
	        System.out.println("Context lookup finished");
 
	FileLocal file=(FileLocal) context.lookup("File/remote");
	PileLocal pile=(PileLocal)(context.lookup(Pile.class.getName()));
 
 
 
	System.out.println("fd"+file.emfiler(5));
	System.out.println("affich");
	file.affichage();
 
 
	}
 
}

la ligne d'erreur c'est cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FileLocal file=(FileLocal)(context.lookup("File/remote"));
et voici mon ProjectEjb

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
 
package Pile_File;
 
import javax.ejb.Local;
import javax.ejb.Remote;
 
 
@Remote
public interface FileLocal {
 
 
	public Object emfiler(Object element);
    public Object défiler();
    public boolean estVide();
    public boolean estPleine();
    public void affichage();
   public Object queu();
 
}
 
package Pile_File;
 
import java.util.Vector;
 
import javax.annotation.PostConstruct;
import javax.ejb.Remote;
import javax.ejb.Remove;
import javax.ejb.Stateful;
 
/**
 * Session Bean implementation class File
 */
@Stateful
@Remote ({FileLocal.class})
public class File implements FileLocal {
 
    /**
     * Default constructor. 
     */
	 private Vector<Object> file;
 
 
    public File() {
    	file = new Vector<Object>(1000);
    }
 
    @PostConstruct
	 public void initialize () {
		this.file= null;
		file.setSize(0);
	 }
 
 
	@Override
	public Object emfiler(Object element) {
		 //ajouter un element
		  if(file.size()==1000)
			  System.out.println("file pleine");
 
	    file.addElement(element);
	    return element;
 
	}
 
	@Override
	public Object défiler() {
		int taille =file.size();
	    Object element = null;
	    int queu=0;
	   if (taille==0)
		   System.out.println("pile vide");
	    //récupérer l'element a supprimé
	    element =file.elementAt(taille-1);
	    // supprimer l'élement
 
	    file.removeElementAt(queu);
	    return element;
	}
 
	@Override
	public boolean estVide() {
		// TODO Auto-generated method stub
		return (file.size() == 0);
	}
 
	@Override
	public boolean estPleine() {
		// TODO Auto-generated method stub
		return (file.size()==1000);
	}
 
	@Override
	public Object queu() {
		// TODO Auto-generated method stub
		return file.lastElement();
	}
 
 
	@Remove
	protected void ramasseMiette() throws Throwable {
	    file = null;
	    super.finalize();
	  }
 
	@Override
	public void affichage() {
 
	        // TODO Auto-generated method stub
	        for (int i = file.size(); i >= 0; i--) System.out.println(i);
	        if(file.isEmpty()) System.out.println("pile vide");
 
	    }
	}