• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

EJB组件:基本结构解析

发布: 2008-1-28 14:29 | 作者: 苏洋 | 来源: 不详 | 查看: 49次 | 进入软件测试论坛讨论

领测软件测试网

EJB组件类
EJB组件类用于定义两种类型方法的实现代码:一种是EJB组件的生命期方法,另外一种是EJB组件的Remote接口中定义的商务方法。会话类型EJB组件对象的组件类实现SessionBean接口、实体类型EJB组件实现EntityBean接口、消息驱动类型EJB组件实现MessageDrivenBean和MessageListener接口。下面代码为有状态会话类型EJB组件CalcBonusEJB的组件类定义代码:

public class CalcBonusBean implements SessionBean 
{
    	    private SessionContext ctx;
			private int nRate;
  			public void setSessionContext(SessionContext ctx) 
{ this.ctx = ctx; }
   			public void ejbActivate() {}
  			public void ejbPassivate() {}
  			public void ejbRemove() {} throws RemoveException
public void ejbCreate () {} throws CreateException
public void ejbCreate (int nRate) throws CreateException
{ this.nRate = nRate; }
    		public float calculateBonus() throws RemoteException
{ return 100.0f; }
    		public float calculateTax(float fRate, float fBonus)
throws RemoteException
{ return fBonus*fRate; }
}
上述会话类型EJB组件对象CalcBonusEJB的组件类定义实现了SessionBean接口对象。
就有状态会话类型EJB组件而言,在组件类定义中除了实现组件的商务方法外,还需要实现SessionBean接口中定义的ejbCreate、ejbRemove、ejbActivate和ejbPassivate等组件生命期方法。
会话类型EJB组件的生命期由EJB组件部署的EJB容器控制,因此在定义的方法中没有任何代码。如果定义一个组件管理持久性(BMP)实体类型的EJB组件,则需要为所有的组件生命期方法编写生命期控制代码。
另外还需要明确的是:客户端应用程序调用部署在EJB服务器中EJB组件的方法,其实质上不是直接调用组件类中定义的方法,而是通过EJB组件的Home接口和Remote接口在EJB容器中的映射由EJB容器采用代理方式调用EJB组件类中的商务方法或者生命期方法。

部署描述文件

部署描述文件是EJB组件的组装者和部署者应用的XML类型文档,其主要作用是声明EJB组件的构成、部署过程中需要EJB容器提供的服务以及对于系统资源的需求等信息。在EJB组件的组装和部署过程中,部署描述文件和EJB组件的Home接口、Remote接口以及组件类定义文件打包成为JAR压缩文档。下面的代码为CalcBonusEJB组件对象部署描述文件的部分代码:

… …
	<SessionBean>
		<ejb-name>CalcBonusEJB</ejb-name>
		<home>CalcBonusHome</home>
		<remote>CalcBonus</remote>
		<ejb-class>CalcBonusBean</ejb-class>
	</SessionBean>
	<container-transaction>
		<method>
		<ejb-name>CalcBonusEJB</ejb-name>
			<method-name>*</method-name>
		</method>
		<trans-attribute>
			null
</trans-attribute>
	</container-transaction>
	… …

在上面的EJB组件部署描述文件中,<SessionBean>字段说明构成EJB组件的接口和组件类名称。在<container-transaction>字段中声明需要EJB容器提供的事务服务。本讲中设计的有状态会话类型EJB组件不需要容器来提供事务服务,因此在<trans-attribute>字段中设置事务属性为null。如果调用EJB的商务方法时需要EJB服务器提供事务服务,则应设置该字段为needed等。

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网