Session Bean除了可以使用注释来发布外,也可以使用相应的配置文件来发布,在这种情况下,就不需要在接口和Session Bean中使用注释了。在JBoss中需要两个文件对Session bean进行配置。这两个文件是ejb-jar.xml和jboss.xml。这两个文件应该META-INF目录中,该目录应该放在jar文件的根目录。ejb-jar.xml文件负责配置session bean,下面是一个典型的配置代码:
- xml version="1.0" encoding="ASCII"?>
- <ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
- {0version="3.0">
- <display-name>MyEJBdisplay-name>
- <enterprise-beans>
- <session>
- <ejb-name>Greeterejb-name>
- <business-local>service.GreeterBeanLocalbusiness-local>
- <business-remote>service.GreeterBeanRemotebusiness-remote>
- <ejb-class>service.GreeterBeanejb-class>
- <session-type>Statelesssession-type>
<transaction-type>Containertransaction-type>
- session>
- enterprise-beans>
- ejb-jar>
|
其中元素就是一个表示,表示当前配置的session bean的名称。和分别用来指定本地接口和远程接口。 用来指定session bean的java类
jboss.xml文件主要用来指定jndi,如下面的代码所示:
xml version="1.0"?>
<jboss xmlns:xs="http://www.jboss.org/j2ee/schema"
xs:schemaLocation="http://www.jboss.org/j2ee/schema jboss
_5_0.xsd"
version="5.0">
<enterprise-beans>
<session>
<ejb-name>Greeterejb-name>
<jndi-name>mygreeterjndi-name>
<local-jndi-name>mygreeter_locallocal-jndi-name>
session>
enterprise-beans>ITPUB
jboss>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
|
上面的代码中的元素的值和要ejb-jar.xml中的元素的值相同。< jndi-name>用来指定远程的jndi名称。用来指定本地jndi的名称。如果访问远程的 session bean,可以使用下面代码:
Properties prop = new Properties();
InitialContext ctx = new InitialContext();
System.out.println(((service.Greeter)ctx.lookup("mygreeter")).greet("bill"));
|
从上面代码可看出,lookup方法通过“mygreeter”来查找服务端的session bean。
【编辑推荐】
- 使用Eclipse+JBoss+EJB3编写有状态的SessionBean
- EJB中Session Bean的见解
- 用Jbuilder 7开发EJB例程--开发Session Bean源码
- EJB的编程规则之Session Bean
- 让Eclipse和NetBeans共享同一个项目