扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:佚名 来源:ZDNet China 2007年11月18日
关键字:
在本页阅读全文(共3页)
开发EJB控件
我们现在来开发一个EJB控件-- HelloWorldSessionEJBControl,通过它我们能够直接访问1、开发SessionBean中开发和部署的EJB。
HelloWorldSessionEJBControl通过JBoss提供的org.jnp.interfaces.NamingContextFactory工厂类获取EJB访问的上下文环境。
清单4中是EJB控件的全部源代码。
清单4:srcorgvivianjbeehivecontrolsexamplescontrolsHelloWorldSessionEJBControl.java
|
EJB控件调用
我们可以通过下面的几个步骤,实例化EJB控件并调用它的业务方法。
在Controller中使用声明式控件实例化定义成员变量_ejbControl。
@Control |
完成控件的业务方法调用
在控件的某个Action方法中完成EJB业务方法的调用,这里要注意的是控件的业务方法通常都声明抛出RemoteException,所以调用的时候需要调用try … catch处理。
try { |
移除控件实例,释放EJB引用
在控件使用完毕以后,应该调用控件的remove方法,以便释放对于EJB的引用,避免可能出现的服务器性能问题。
try { |
测试EJB控件
一切准备就绪后,启动JBoss服务器,参考《控件入门》中“使用JUnit测试控件”部分的内容,编写单元测试TestCase测试新创建的EJB控件。
实例分析
从上面的例子中我们可以看到,使用EJB控件访问EJB资源的时候,开发者的工作被大大的简化了。开发者只需要开发一个继承自EJB控件的控件,使用EJB控件中规定的注释提供访问EJB所需要的一些环境参数,随后便可以使用声明式控件实例化方式完成控件的实例化,通过调用该控件实例的相关业务方法完成EJB资源的访问。
现在我们来分析一下上面创建的EJB控件-- HelloWorldSessionEJBControl (参见清单4)中的主要代码。
12. @ControlExtension |
在控件例子的12行,我们通过@ControllerExcention注释来说明接下来声明的这个接口是另外一个控件的扩展。HelloWorldSessionEJBControl控件继承自SessionEJBControl,所以必须使用在接口定义前使用ControllerExcention。
13. @SessionEJBControl.EJBHome(jndiName = “jndi/helloworld”) |
在第13行代码中我们使用@SessionEJBControl.EJBHome关键词和它的jndiName属性来设置我们要访问EJB在目标服务器中发布时使用的jndiName。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者