JavaBeans:开发SessionBeanJava认证考试
文章作者 100test 发表时间 2009:04:10 01:55:52
来源 100Test.Com百考试题网
百考试题编辑整理:JavaBeans开发Session Bean
Cabin实体已经就绪,我们需要创建一个session bean,作为和Cabin实体交互的接口。该session bean将承担业务流程和(实体)访问代理的职责,我们称其为TravelAgent EJB。
TravelAgentRemote:远程接口
创建TravelAgent EJB的第一步是定义它的远程接口。该接口规定了允许客户端调用的EJB业务方法。客户端与TravelAgent的createCaben()和findCabin()方法进行交互,以控制Cabin实体。
package com.titan.travelagent.
import javax.ejb.Remote.
import com.titan.domain.Cabin.
@Remote
public interface TravelAgentRemote {
public void createCabin(Cabin cabin).
public Cabin findCabin(int id).
}
TravelAgent EJB的远程接口实在没有什么特别之处。除了被标以@javax.ejb.Remote外,它看起来就像一个普通的Java接口。该注解告诉EJB容器,这一特定接口是TravelAgent EJB的远程业务接口。还要注意的是,业务方法不必再像EJB2.1那样抛出java.rmi.RemoteException了。如果想抛的话依然还可以抛,但是这并非是必须的。
TravelAgentBean: Bean Class
TravelAgentBean: The Bean Class
我们既已定义好针对TravelAgent EJB的远程接口,就要为该session bean实现包含业务逻辑的bean class了。TravelAgent EJB被定义为stateless bean。我们使用@javax.ejb.Stateless
注解来表达此意图。尽管不是必要的,但对stateless session bean而言,实现其全部业务接口是一条不错的实践,这样,client/bean契约就能够通过Java编译器得到强化。在本例中,业务接口即 TravelAgentRemote。下面是TravelAgentBean的完整定义。
package com.titan.travelagent.
import javax.ejb.Stateless.
import javax.persistence.EntityManager.
import javax.persistence.PersistenceContext.
import com.titan.domain.Cabin.