EJB - JNDI Bağlamaları

JNDI, Java Adlandırma ve Dizin Arayüzü anlamına gelir. Bir dizi API ve hizmet arabirimidir. Java tabanlı uygulamalar, adlandırma ve dizin hizmetleri için JNDI kullanır. EJB bağlamında iki terim vardır.

  • Binding - Bu, daha sonra kullanılabilecek bir EJB nesnesine bir ad atamayı ifade eder.

  • Lookup - Bu, EJB nesnesini aramak ve almak anlamına gelir.

Jboss'ta, oturum fasulyeleri JNDI'da varsayılan olarak aşağıdaki formatta bağlanır.

  • local - EJB adı / yerel

  • remote - EJB adı / uzak

EJB'nin <uygulama-adı> .ear dosyasıyla paketlenmesi durumunda, varsayılan biçim aşağıdaki gibidir -

  • local - uygulama-adı / ejb-adı / yerel

  • remote - uygulama adı / ejb adı / uzak

Temerrüt Bağlamasına Örnek

Bakınız EJB - Uygulama Oluşturma bölümün en JBoss konsol çıktısını.

JBoss Uygulama Sunucusu Günlük Çıktısı

...
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
...

Özelleştirilmiş Ciltleme

Varsayılan JNDI bağlamalarını özelleştirmek için aşağıdaki ek açıklamalar kullanılabilir -

  • local - org.jboss.ejb3.LocalBinding

  • remote - org.jboss.ejb3.RemoteBindings

LibrarySessionBean.java'yı güncelleyin. Bakınız EJB - Uygulama oluşturun bölüm.

LibrarySessionBean

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;
    }
}

LibrarySessionBeanLocal

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

Projeyi oluşturun, uygulamayı Jboss üzerinde dağıtın ve Jboss konsolunda aşağıdaki çıktıyı doğrulayın -

...
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
...