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>MyEJB< SPAN>display-name>
- <enterprise-beans>
- <session>
- <ejb-name>Greeter< SPAN>ejb-name>
- <business-local>service.GreeterBeanLocal< SPAN>business-local>
- <business-remote>service.GreeterBeanRemote< SPAN>business-remote>
- <ejb-class>service.GreeterBean< SPAN>ejb-class>
- <session-type>Stateless< SPAN>session-type>
<transaction-type>Container< SPAN>transaction-type>
- < SPAN>session>
- < SPAN>enterprise-beans>
- < SPAN>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>Greeter< SPAN>ejb-name>
- <jndi-name>mygreeter< SPAN>jndi-name>
- <local-jndi-name>mygreeter_local< SPAN>local-jndi-name>
- < SPAN>session>
- < SPAN>enterprise-beans>ITPUB
- < SPAN>jboss>
|
上面的代碼中的元素的值和要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共享同一個項目