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" version="3.0"> <display-name>MyEJB</display-name> <enterprise-beans> <session> <ejb-name>Greeter</ejb-name> <business-local>service.GreeterBeanLocal</business-local> <business-remote>service.GreeterBeanRemote</business-remote> <ejb-class>service.GreeterBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> |
其中<ejb-name>元素就是一個表示,表示當前配置的session bean的名稱.<business-local>和<bussiness-remote>分別用來指定本地介面和遠程介面.<ejb-class>用來指定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</ejb-name> <jndi-name>mygreeter</jndi-name> <local-jndi-name>mygreeter_local</local-jndi-name> </session> </enterprise-beans> |
上面的代碼中的<ejb-name>元素的值和要ejb-jar.xml中的<ejb-name>元素的值相同.<jndi-name>用來指定遠程的jndi名稱.<local-jndi-name>用來指定本地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 5 EJB3開發指南(5):使用配置文件發布Session Bean已經有662次圍觀