Liaisons EJB - JNDI

JNDI signifie Java Naming and Directory Interface. C'est un ensemble d'interfaces API et de service. Les applications basées sur Java utilisent JNDI pour les services de dénomination et d'annuaire. Dans le contexte d'EJB, il existe deux termes.

  • Binding - Cela fait référence à l'attribution d'un nom à un objet EJB, qui peut être utilisé ultérieurement.

  • Lookup - Cela fait référence à la recherche et à l'obtention d'un objet d'EJB.

Dans Jboss, les beans session sont liés par défaut dans JNDI au format suivant.

  • local - Nom EJB / local

  • remote - Nom EJB / télécommande

Si les EJB sont fournis avec le fichier <application-name> .ear, le format par défaut est le suivant:

  • local - nom-application / nom-ejb / local

  • remote - nom-application / nom-ejb / distant

Exemple de liaison par défaut

Reportez-vous à la sortie de la console JBoss du chapitre EJB - Créer une application .

Sortie du journal du serveur d'applications JBoss

...
16:30:02,723 INFO  [SessionSpecContainer] Starting jboss.j2ee:jar=EjbComponent.jar,name=LibrarySessionBean,service=EJB3
16:30:02,723 INFO  [EJBContainer] STARTED EJB: com.tutorialspoint.stateless.LibrarySessionBean ejbName: LibrarySessionBean
16:30:02,731 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

   LibrarySessionBean/remote - EJB3.x Default Remote Business Interface
   LibrarySessionBean/remote-com.tutorialspoint.stateless.LibrarySessionBeanRemote - EJB3.x Remote Business Interface
...

Reliure personnalisée

Les annotations suivantes peuvent être utilisées pour personnaliser les liaisons JNDI par défaut -

  • local - org.jboss.ejb3.LocalBinding

  • remote - org.jboss.ejb3.RemoteBindings

Mettez à jour LibrarySessionBean.java. Reportez-vous au chapitre EJB - Créer une application .

BibliothèqueSessionBean

package com.tutorialspoint.stateless;
 
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
 
@Stateless
@LocalBinding(jndiBinding="tutorialsPoint/librarySession")
public class LibrarySessionBean implements LibrarySessionBeanLocal {
    
    List<String> bookShelf;    
    
    public LibrarySessionBean() {
       bookShelf = new ArrayList<String>();
    }
    
    public void addBook(String bookName) {
       bookShelf.add(bookName);
    }    
 
    public List<String> getBooks() {
        return bookShelf;
    }
}

BibliothèqueSessionBeanLocal

package com.tutorialspoint.stateless;
 
import java.util.List;
import javax.ejb.Local;
 
@Local
public interface LibrarySessionBeanLocal {
 
    void addBook(String bookName);
 
    List getBooks();
    
}

Générez le projet, déployez l'application sur Jboss et vérifiez la sortie suivante dans la console Jboss -

...
16:30:02,723 INFO  [SessionSpecContainer] Starting jboss.j2ee:jar=EjbComponent.jar,name=LibrarySessionBean,service=EJB3
16:30:02,723 INFO  [EJBContainer] STARTED EJB: com.tutorialspoint.stateless.LibrarySessionBean ejbName: LibrarySessionBean
16:30:02,731 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

   tutorialsPoint/librarySession - EJB3.x Default Local Business Interface
   tutorialsPoint/librarySession-com.tutorialspoint.stateless.LibrarySessionBeanLocal - EJB3.x Local Business Interface
...