一、创建一个EJB项目
首先创建一个包含EJB的新EJB项目。
注意:本教程中创建的项目可在Resources section中找到。
1. 选择File>New>Project,然后双击EJB Project。
2. 在Project name字段中输入SampleEJBProject。
3. 接受默认的JavaEE 6.0 – EJB 3.1版本,选择无JPA支持,然后单击Finish。向导中的剩余字段从MyEclipse EJB项目模板中填入,此模板在MyEclipse Java Enterprise Project参数中定义。
注意:本教程使用默认的JavaEE 6版本;而JavaEE 7是创建新项目时的可用项目。
创建一个新的EJB项目
您可以选择配置任何数据源用于生成此项目的EJB3 Entity Beans。
新项目包括默认的ejbModule源文件夹和一个sampleejbproject包:
Project structure
二、创建无状态会话Bean
创建无状态会话bean涉及定义bean的接口并创建会话bean。当会话Bean生成时实现两个接口,一个用于本地呼叫(在同一个VM中),另一个用于远程呼叫(外部VM,网络上等)。可以根据调用者显示不同的功能(例如,不要将方法暴露给返回巨大数据集的远程调用)。
对于本教程,您将完全相同的信息暴露给Bean的本地和远程调用者。由于这个假设,通过使用其中定义的所有方法实现基础接口,代码仍然很容易遵循,本地和远程版本的bean都扩展并且实现会话Bean。 结果如下:
会话bean流
1. 右键单击sampleejbproject包,然后选择New>Interface。
创建一个新的接口
2. 在Name字段中输入IMyBean。
3. 单击Add,在Choose interfaces字段中输入java.io.,然后选择Serializable,单击OK。这扩展了Serializable,因此如果需要,应用程序服务器可以更好地处理会话Bean。
使用可序列化扩展接口
4. 单击Finish。
5. IMyBean界面将在Java编辑器中自动打开。添加一个方法签名,如下所示,然后按CTRL + S保存。
向接口添加一个方法
6. 右键单击package,然后选择New>EJB3 Session Bean。
7. 在Name字段中输入MyBean,检查本地和远程复选框来生成本地和远程接口版本,然后单击Finish。
使用本地和远程接口创建会话bean并将其添加到项目中。
具有会话bean和MyBeanLocal及MyBeanRemote接口的项目结构需要修改来扩展IMyBean,并将doSomething的实现添加到MyBean中。如果您没有定义IMyBean,则必须将方法定义从MyBeanLocal和MyBeanRemote复制粘贴到这些方法中,在单个界面中定义方法会容易些。提醒您,现在有这样的结构:
8. 双击MyBean.java,并在最终括号之前添加以下代码来实现添加到bean接口的doSomething方法。 按CTRL + S保存。
public void doSomething { System.out.println("Hello World!"); }
每个接口都需要扩展IMyBean。 打开MyBeanLocal.java和MyBeanRemote.java,并将IMyBean扩展到公共接口,如下所示:
public interface MyBeanLocal extends IMyBean { }