天天看點

eclipse + JBoss 5 + EJB3開發指南(5):使用配置檔案釋出Session Bean

本文為原創,如需轉載,請注明作者和出處,謝謝!

    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-jar>

    其中<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>

         <jndi-name>mygreeter</jndi-name>

         <local-jndi-name>mygreeter_local</local-jndi-name>

</jboss>

    上面的代碼中的<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。

<a href="http://www.eoeandroid.com/forumdisplay.php?fid=4">國内最棒的Google Android技術社群(eoeandroid),歡迎通路!</a>

繼續閱讀