Ejb-jndi-bindings

提供:Dev Guides
移動先:案内検索

EJB-JNDIバインディング

JNDIは、Java Naming and Directory Interfaceの略です。 これは、APIおよびサービスインターフェイスのセットです。 Javaベースのアプリケーションは、ネーミングおよびディレクトリサービスにJNDIを使用します。 EJBのコンテキストでは、2つの用語があります。

  • Binding -これは、後で使用できるEJBオブジェクトに名前を割り当てることを指します。
  • ルックアップ-これは、EJBのオブジェクトをルックアップして取得することを指します。

Jbossでは、セッションBeanはデフォルトで次の形式でJNDIにバインドされます。

  • local -EJB-name/local
  • remote -EJB-name/remote

場合には、EJBは<application-name> .earファイルにバンドルされており、デフォルトのフォーマットは次のとおりです-

  • local -application-name/ejb-name/local
  • リモート-アプリケーション名/EJB名/リモート

デフォルトのバインドの例

_EJB-アプリケーションの作成_の章のJBossコンソール出力を参照してください。

JBoss Application Serverのログ出力

...
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.finddevguides.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.finddevguides.stateless.LibrarySessionBeanRemote - EJB3.x Remote Business Interface
...

カスタマイズされたバインディング

次の注釈を使用して、デフォルトのJNDIバインディングをカスタマイズできます-

  • local -org.jboss.ejb3.LocalBinding
  • リモート-org.jboss.ejb3.RemoteBindings

LibrarySessionBean.javaを更新します。 _EJB-アプリケーションの作成_の章を参照してください。

LibrarySessionBean

package com.finddevguides.stateless;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;

@Stateless
@LocalBinding(jndiBinding="finddevguides/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.finddevguides.stateless;

import java.util.List;
import javax.ejb.Local;

@Local
public interface LibrarySessionBeanLocal {

    void addBook(String bookName);

    List getBooks();

}

プロジェクトをビルドし、Jbossにアプリケーションをデプロイし、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.finddevguides.stateless.LibrarySessionBean ejbName: LibrarySessionBean
16:30:02,731 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

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