在线
客服
在线
QQ
电话
咨询
400-700-1020
购买 公众号 返回
顶部

Loding the player....

本视频来由慧都网提供   查看原视频>>

创建一个JavaEE EJB项目

买MyEclipse送Java畅销书,仅限15天!!活动火热开启中>>

MyEclipse最新版下载

一、创建一个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是创建新项目时的可用项目。

使用MyEclipse开发Java EE应用
创建一个新的EJB项目

您可以选择配置任何数据源用于生成此项目的EJB3 Entity Beans。

新项目包括默认的ejbModule源文件夹和一个sampleejbproject包:

使用MyEclipse开发Java EE应用
Project structure

二、创建无状态会话Bean

创建无状态会话bean涉及定义bean的接口并创建会话bean。当会话Bean生成时实现两个接口,一个用于本地呼叫(在同一个VM中),另一个用于远程呼叫(外部VM,网络上等)。可以根据调用者显示不同的功能(例如,不要将方法暴露给返回巨大数据集的远程调用)。

对于本教程,在某些情况下,您将完全相同的信息暴露给Bean的本地和远程调用者。由于这个假设,通过使用其中定义的所有方法实现基础接口,代码仍然很容易遵循,本地和远程版本的bean都扩展并且实现会话Bean。 结果如下:

使用MyEclipse开发Java EE应用
会话bean流

1. 右键单击sampleejbproject包,然后选择New>Interface。

使用MyEclipse开发Java EE应用
创建一个新的接口

2. 在Name字段中输入IMyBean。

3. 单击Add,在Choose interfaces字段中输入java.io.,然后选择Serializable,单击OK。这扩展了Serializable,因此如果需要,应用程序服务器可以更好地处理会话Bean。

使用MyEclipse开发Java EE应用
使用可序列化扩展接口

4. 单击Finish。

使用MyEclipse开发Java EE应用

5. IMyBean界面将在Java编辑器中自动打开。添加一个方法签名,如下所示,然后按CTRL + S保存。

使用MyEclipse开发Java EE应用
向接口添加一个方法

6. 右键单击package,然后选择New>EJB3 Session Bean。

7. 在Name字段中输入MyBean,检查本地和远程复选框来生成本地和远程接口版本,然后单击Finish。

使用MyEclipse开发Java EE应用

使用本地和远程接口创建会话bean并将其添加到项目中。

使用MyEclipse开发Java EE应用

具有会话bean和MyBeanLocal及MyBeanRemote接口的项目结构需要修改来扩展IMyBean,并将doSomething()的实现添加到MyBean中。如果您没有定义IMyBean,则必须将方法定义从MyBeanLocal和MyBeanRemote复制粘贴到这些方法中,在单个界面中定义方法会容易些。提醒您,现在有这样的结构:

使用MyEclipse开发Java EE应用

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 {
}

三、部署Bean

部署和运行步骤是通过使用MyEclipse将bean部署到符合Java EE 6.0的应用程序服务器来完成的,本教程使用Glassfish 3.1。

1. 在Servers视图中右键单击Glassfish服务器,然后选择Add/Remove部署。

2. 在可用列表中选择SampleEJBProject,单击Add,然后单击Finish。

使用MyEclipse开发Java EE应用
将项目添加到服务器

3. 右键单击服务器,如果服务器未运行,请选择Start。

应用程序服务器启动并显示关于成功部署会话Bean的控制台视图消息。

使用MyEclipse开发Java EE应用
控制台输出

四、测试Bean

要测试,您需要在包中创建一个新的Java测试类。

1. 右键单击该包,然后选择New>Class。

使用MyEclipse开发Java EE应用
创建一个测试类

2. 在Name字段汇总输入MyBeanClient,然后选择Public static void main复选框来告诉MyEclipse为它生成一个main方法,单击Finish。

使用MyEclipse开发Java EE应用

Java类详细信息在向客户端添加并运行代码之前,需要将gf-client.jar添加到构建路径中。该JAR来自Glassfish 3库文件夹,并且包含一个自定义的jndi.properties文件,可以自动直接连接到Glassfish 3 JNDI上下文,几乎不用再检索该bean。

3. 右键单击该项目,然后选择Build Path>Configure Build Path。

4. 选择Libraries标签,然后单击Add External JARs。

使用MyEclipse开发Java EE应用
将外部JAR添加到构建路径

5. 导航到Glassfish安装文件夹,然后导航到lib文件夹,然后双击gf-client.jar。

6. 单击OK。

使用MyEclipse开发Java EE应用

将外部JAR添加到构建路径,现在您可以向测试客户端添加代码并运行它。

7. 双击MyBeanClient.java,并用以下的代码进行替换,使用CTRL + S保存。

package sampleejbproject;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class MyBeanClient {

public static void main(String[] args) {
try {
InitialContext ctx = new InitialContext();
MyBeanRemote bean = (MyBeanRemote) ctx.lookup(MyBeanRemote.class.getName());
bean.doSomething();
}
catch (NamingException e) {
e.printStackTrace();
}
}
}

在上面的代码中有一些关键的信息要注意:

  • 代码将返回的bean转换为MyBean而不是MyRemoteBean,因为它正在从JNDI上下文中请求远程Bean。如上所述,不同的本地/远程接口暴露的方法可能会有所不同,因此您需要坚持请求接口。
  • Glassfish对未指定EJB的EJB使用默认的JNDI名称绑定,再查看服务器日志截图。注意默认名称打印在日志中,此默认名称因应用程序服务器而异,大多数人将使用@Stateless注释的mappedName值来指定所有应用服务器中的新绑定。例如:@Stateless(name=”MyBean”, mappedName=”ejb/MyBean”)。
  • 在拥有了bean之后,您可以像一个本地实例一样对待它,只需要调用它即可。

由于bean代码的编写(System.out.println),结果将输出到MyEclipse中的应用程序服务器控制台视图。要查看应用程序的结果,请右键单击MyBeanClient.java,然后从菜单中选择Run As> Java Application。

使用MyEclipse开发Java EE应用
运行测试客户端的结果

五、资源

更多资讯敬请访问MyEclipse中文网>>