转发JBoss EJB JNDI命名默认规则和自定义方法

来源:互联网 发布:mac子弹头香港专柜价格 编辑:程序博客网 时间:2024/05/17 01:27
下面要重点说明一下Jboss EJB JNDI名称默认的命名规则,命名规则如下:
1> 如果EJB打包进后缀为*.earJ2EE发布文件,默认的JNDI路径名称是
访问本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
访问远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
例:EJB HelloWorld打包进名为 HelloWorld.earJ2EE应用,访问她远程接口的JNDI名是:HelloWorld/HelloWorldBean/remote
 
2> 如果EJB应用打包成后缀为*.jar的发布文件,默认的JNDI路径名称是
访问本地接口:EJB-CLASS-NAME/local
访问远程接口:EJB-CLASS-NAME/remote
例: HelloWorld应用打包成HelloWorld.jar文件,访问她远程接口的JNDI名称是:HelloWorldBean/remote
 
注意:EJB-CLASS-NAME是不带包名的com.foshanshop.ejb3.impl.HelloWorldBean只需取HelloWorldBean
 
目前网上很多教材获取JNDI路径名的方式不适用在jboss下,如:
HelloWorld helloworld = (HelloWorld) ctx.lookup(HelloWorld.class.getName());
这种方式适用于Sun Application Serverglassfish
 

 

  

自定义JNDI命名
默认的JNDI命名规则上面已经介绍过,但有些情况下需要自定义名称。Jboss要自定义JNDI名称,可以使用@LocalBinding@RemoteBinding注释
 
关键代码(只需要在bean interface前加binding注释):
 
import org.jboss.annotation.ejb.RemoteBinding;
。。。
@Remote
@RemoteBinding (jndiBinding="testbinding/myAccount")
publicinterface MyAccountextends Serializable {
    publicint Add(int a, int b);
    publicint getResult() ;
}
 
那么在client端调用上面的EJB的代码为:
InitialContext ctx = new InitialContext(props);
MyAccount bean1 = (MyAccount) ctx.lookup("testbinding/myAccount");
0 0
原创粉丝点击