您的位置:首页 > 其它

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

2014-06-16 15:24 323 查看
下面要重点说明一下Jboss EJB JNDI
名称默认的命名规则
,命名规则如下:
1> 如果EJB
打包进后缀为*.ear
的J2EE
发布文件,默认的JNDI
路径名称是
访问本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
访问远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
例:EJB HelloWorld
打包进名为 HelloWorld.ear
的J2EE
应用,访问她远程接口的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 Server
及glassfish
 
 

  

自定义JNDI
命名


默认的JNDI
命名规则上面已经介绍过,但有些情况下需要自定义名称。在Jboss
要自定义JNDI
名称,可以使用@LocalBinding
和@RemoteBinding
注释
 
关键代码(只需要在bean interface前加binding注释):
 
import org.jboss.annotation.ejb.RemoteBinding;
。。。
@Remote
@RemoteBinding (jndiBinding="testbinding/myAccount")
publicinterface MyAccount
extends Serializable {
    publicint Add(int
a, int b);
    publicint getResult() ;
}
 
那么在client端调用上面的EJB的代码为:
InitialContext ctx = new InitialContext(props);
MyAccount bean1 = (MyAccount) ctx.lookup("testbinding/myAccount");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jboss ejb