eclipse + JBoss 5 + EJB3开发指南(5):使用配置文件发布Session Be

来源:互联网 发布:800源码 编辑:程序博客网 时间:2024/03/28 19:50

本文为原创,如需转载,请注明作者和出处,谢谢!
   
    Session Bean除了可以使用注释来发布外,也可以使用相应的配置文件来发布。在这种情况下,就不需要在接口和Session Bean中使用注释了。在JBoss中需要两个文件对Session bean进行配置。这两个文件是ejb-jar.xml和jboss.xml。这两个文件应该META-INF目录中,该目录应该放在jar文件的根目 录。ejb-jar.xml文件负责配置session bean,下面是一个典型的配置代码:

Code:
  1. <?xml version="1.0" encoding="ASCII"?>  
  2. <ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"  
  3. xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"  
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"  
  5. version="3.0">  
  6.   <display-name>MyEJB</display-name>  
  7.      <enterprise-beans>  
  8.       <session>  
  9.          <ejb-name>Greeter</ejb-name>  
  10.          <business-local>service.GreeterBeanLocal</business-local>  
  11.          <business-remote>service.GreeterBeanRemote</business-remote>  
  12.          <ejb-class>service.GreeterBean</ejb-class>  
  13.          <session-type>Stateless</session-type>  
  14.          <transaction-type>Container</transaction-type>  
  15.       </session>  
  16.    </enterprise-beans>  
  17. </ejb-jar> 

    其中<ejb-name>元素就是一个表示,表示当前配置的session bean的名称。<business-local>和<bussiness-remote>分别用来指定本地接口和远程接口。 <ejb-class>用来指定session bean的java类

    jboss.xml文件主要用来指定jndi,如下面的代码所示:

Code:
  1. <?xml version="1.0"?>  
  2.    
  3. <jboss xmlns:xs="http://www.jboss.org/j2ee/schema"  
  4.        xs:schemaLocation="http://www.jboss.org/j2ee/schema jboss_5_0.xsd"  
  5.              version="5.0">   
  6.    <enterprise-beans>  
  7.       <session>  
  8.          <ejb-name>Greeter</ejb-name>  
  9.          <jndi-name>mygreeter</jndi-name>  
  10.          <local-jndi-name>mygreeter_local</local-jndi-name>  
  11.       </session>  
  12.    </enterprise-beans>  
  13. </jboss> 

    上面的代码中的<ejb-name>元素的值和要ejb-jar.xml中的<ejb-name>元素的值相同。< jndi-name>用来指定远程的jndi名称。<local-jndi-name>用来指定本地jndi的名称。如果访问远程的 session bean,可以使用下面代码:

Code:
  1. Properties prop = new Properties();  
  2. InitialContext ctx = new InitialContext();  
  3. System.out.println(((service.Greeter)ctx.lookup("mygreeter")).greet("bill")); 

    从上面代码可看出,lookup方法通过“mygreeter”来查找服务端的session bean。

原创粉丝点击