创建EJB控件的典型步骤

  EJB系统控件无法直接用于访问EJB资源,使用者必须继承EJB控件来创建自己的访问控件。一个继承控件只能对应于一个EJB的访问,所以使用者必须针对不同的EJB创建不同的访问控件。

  你可以使用下面的步骤来创建自己的控件实现对EJB资源的访问:

  创建Java接口,根据目标EJB资源类型的不同选择继承不同的EJB控件类

  要访问SessionBean类型的EJB资源,Java接口必须继承org.apache.beehive.controls.system.ejb.SessionEJBControl接口。

  要访问EntityBean类型的EJB资源,Java接口必须继承org.apache.beehive.controls.system.ejb.EntityEJBControl接口。

  用@ControlExtension关键字注释新创建的Java接口,通知解析器这个接口继承了另外的某个控件。

  继承目标EJB的Home和Remote接口,这些接口可能是本地的或者是远程的。

  使用@EJBHome.jndiName或者@EJBHome.ejbLink注释新创建的Java接口,指定控件如何搜索EJB实例。

  如果控件使用jndiName来访问EJB,还需要使用@JNDIContextEnv关键字注释新创建的Java接口,说明控件如何与目标EJB容器实现交互。

  创建访问SessionBean的控件

  在本节中,我们将通过简单的例子演示如何使用EJB控件来访问SessionBean。

  我们假设需要开发一个简单的SessionBean并且使用EJB控件来访问它。该EJB提供一个简单的Remote方法sayHello,调用sayHello可以返回”Hello World!”字符串。该EJB支持Remote方式访问。

  为了说明Beehive并不仅仅局限于WebLogic平台,我们选择JBoss应用服务器作为演示时使用的EJB容器,EJB发布时使用的JNDI名称是“jndi/helloworld”。

  接下来的EJB开发、部署和控件访问部分内容也针对JBoss应用服务器。实际情况下,你可能根据不同情况选择其他的J2EE容器比如Websphere、WebLogic、Geronimo、JOnAS等作为EJB容器,请根据下面的提示信息进行适当的调整。

  开发SessionBean

  首先我们来开发提供sayHello业务方法SessionBean,作者使用Eclipse+WTP(Web Tools Platform)插件工具完成开发。

  如何开发EJB不是本文的关注点,所以这里只是简单的提供EJB实现对应的代码。开发EJB的学习资料可以在参考资源中找到。

  EJB Bean类源代码—HelloWorld.java

  清单1 ejbsrcorgvivianjbeehivecontrolsexamplesejbhelloworld.java

  

  1. package org.vivianj.beehive.controls.examples.ejb;

  2.

  3. import javax.ejb.*;

  4.

  5. public class HelloWorld

  6. implements SessionBean

  7. {

  8. public void ejbCreate() {

  9. }

  10. public String sayHello()

  11. {

  12. return “Hello World!”;

  13. }

  14. }

 

共4页。 1 2 3 4 :