Java EE应用程序入门
时间:2011-07-06 netbeans.org
本文将详细介绍使用 EJB 3.0 技术开发企业应用程序的基础知识,而 EJB 3.0 是 Java EE 5 平台的组成部分。本文还将阐述如何通过 EJB 3.0 技术简化开发企业应用程序的流程。本文使用的是 NetBeans IDE 6.0 发行版。
先决条件
本文假定您在以下方面拥有基本知识和编程经验:
Java 编程
NetBeans IDE
教程所需软件
对于本教程,您需要在计算机上安装以下软件:
"Web & Java EE" 或 "All" 下载版本的 NetBeans IDE 6.0 (下载)
Java 标准开发工具箱 (JDK) 版本 5.0 或 6.0 (下载)
GlassFish V2 Application Server (绑定完整的 IDE 下载)或 Sun Java System Application Server 平台版本 9 (下载)
对于本教程,您需要注册 GlassFish/Sun Java System Application Server 及其 IDE 的本地实例。
建立企业应用程序项目
此次练习的目标是创建 NewsApp 企业应用程序项目,其中包含一个 EJB 模块和一个 web 模块。NewsApp 应用程序使用一个消息驱动的 bean 接收和处理 servlet 发送到队列的消息。该应用程序使用 servlets 发送消息给消息驱动的 bean ,以便显示消息。
创建企业应用程序
从主菜单中选择 File> New Project (Ctrl-Shift-N)。
从 Enterprise 类别中选择 Enterprise Application ,然后单击 Next 按钮。
将项目命名为 NewsApp,并将服务器设定为 Sun Java System Application Server。
将 Java EE 版本设为 Java EE 5,然后选择 Create EJB Module 和 Create Web Application Module (如果未选中)。
单击 Finish 按钮。
Java EE应用程序入门(2)
时间:2011-07-06 netbeans.org
小结
在本练习中,我们创建了一个 Java EE 5 企业应用程序,其中包含一个 EJB 模块和一个 web 模块。
编写 EJB 模块
在本练习中,我们将在 EJB 模块中创建对象。我们将创建一个实体类,一个消息驱动 bean 和一个会话外观(Session Facade)。我们还将创建一个持久性单元,以便为容器提供管理实体,和消息驱动 bean 将使用的 Java 消息服务(Java Message Service ,JMS)资源所需的信息。
创建持久性单元
首先,我们需要创建一个持久性单元,用于定义应用程序中所使用的数据源和实体管理器。
右击 EJB 模块,然后选择 New > File/Folder 。
从 Persistence 类别中,选择 Persistence Unit ,然后单击 Next 按钮。
保持默认的 Persistence Unit 名称。
对于 Persistence Provider ,选择 TopLink(默认)。
对于Data Source,选择默认数据源 jdbc/sample。
检查持久性单元使用了 Java Transaction API,而且 Table Generation Strategy 被设定为 Create ,这样部署应用程序时就能基于我们的实体类创建表。
单击 Finish 按钮。
单击 Finish 时,IDE 将会创建 persistence.xml,并在源代码编辑器中以设计视图打开它。关闭 persistence.xml。
创建 NewsEntity 实体类
在本练习中,我们将创建 NewsEntity 实体类。实体类就是一个简单的 Java 类。创建实体类时,IDE 会添加 @Entity 注释用于将类定义为实体类。创建类之后,我们将在类中创建字段,以表示要在表中保存的数据。
每个实体类都必须有一个主键。创建实体类时,IDE 会添加 @Id 注释用于声明使用哪个字段作为主键。IDE 还会添加 @GeneratedValue 注释,用于指定主 Id 的主要生成策略。
创建 NewsEntity 类的步骤如下:
在 Project 窗口在单击鼠标右键 EJB 模块,然后选择 New > File/Folder ,以便打开 New File 向导。
从 Persistence 类别中,选择 Entity Class ,然后单击 Next 按钮。
键入 NewsEntity 作为类名,键入 ejb 作为包名,让 Primary Key Type 保持为 Long。