EJB JBoss JNDI 地址

JBoss 有以下两种绑定规则:

缺省绑定  缺省情况下,会话 Bean 的 JNDI 绑定名称是:

* local 接口:<ejbName>/local

* remote 接口:<ejbName>/remote

当 EJB 被部署到某个 ear 中后,缺省绑定名称中会以 ear 包的名称作为前缀。比如,ear 文件是 test.ear 时,EJB 的绑定名称是:

* local 接口:test/<ejbName>/local

* remote 接口:test/<ejbName>/remote

用户自定义的绑定

Jboss 中,用户可以通过 @LocalBinding 或 @RemoteBinding 为某个 EJB 自定义JNDI 绑定名称。注意:@LocalBinding 和 @RemoteBinding 是 JBoss 自提供的扩展注释,而非 EJB 3 规范的标准注释。建议不要使用!示例:

import org.jboss.annotation.ejb.LocalBinding;

import org.jboss.annotation.ejb.RemoteBinding;

@Stateless

@RemoteBinding (jndiBinding="aaa/Remote")

@LocalBinding (jndiBinding="mybean_Local")

public class MyBean implements .... { ... }

在Java EE 5 中仍然支持正规的XML 发布描述符,例如Java EE 标准规定的ejb-jar.xml 和服务器特定的描述符例如jboss.xml。而且,如果配置文件中的值和标注中的发生了冲突,则以配置文件中的内容为准,ejb-jar.xml 文件需要新建在src/META-INF/目录下,在此文件中,我们主要通过配置文件定义了一个EJB,其中的ejb-name 的取值对应@Stateless 标注中的name 属性,business-local 对应本地接口,business-remote 对应远程接口,ejb-class 对应作为EJB 发布的Bean 实现类,session-type 则对应了有状态或者无状态。代码清单如下:

<?xml version="1.0" encoding="UTF-8"?>

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">

<enterprise-beans>

<session>

<ejb-name>MySessionBean</ejb-name>

<business-local>conftest.NewSessionLocal</business-local>

<business-remote>conftest.NewSessionRemote</business-remote>

<ejb-class>conftest.NewSessionBean</ejb-class>

<session-type>Stateless</session-type>

</session>

</enterprise-beans>

</ejb-jar>


jboss.xml 也位于同一目录下,注意这个文件名完全是JBoss 规定的,属于厂商特定的配置文件(换句话说别的服务器类似的文件名将会不一样),代码清单如下:

<?xml version="1.0" encoding="UTF-8"?>

<jboss>

<enterprise-beans>

<session>

<ejb-name>MySessionBean</ejb-name>

<jndi-name>MySessionBeanTest</jndi-name>

<local-jndi-name>MySession_Local</local-jndi-name>

<!--

<remote-jndi-name>MySessionRemote</remote-jndi-name>-->

</session>

</enterprise-beans>

</jboss>


你可能感兴趣的:(java,bean,xml,jboss,ejb)