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

下面要重点说明一下 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 ");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值