本文档介绍了如何将现有的 J2EE 企业应用程序导入到 NetBeans IDE 项目中。我们将通过导入 J2EE 1.4 SDK Samples 中包含的 cmpcustomer 示例应用程序来加以说明。
cmpcustomer 应用程序包含一个 src 文件夹(包含企业应用程序部署描述符)、一个 cmpcustomer-ejb 文件夹(包含 EJB 模块源)以及一个 cmpcustomer-war 文件夹(包含 Web 应用程序客户机源)。
cmpcustomer 样例源代码位于 Sun/AppServer/samples/ejb/cmp/apps/cmpcustomer 文件夹中。如果您没有 J2EE 1.4 SDK Samples,可以从 http://java.sun.com/j2ee/1.4/download.html 下载。请确保将样例提取到 Sun/AppServer/Samples 文件夹中。
入门指南
在开始之前,我们先准备好所有必需的软件并设置好环境。
安装软件
开始之前,需要在计算机中安装以下软件:
NetBeans IDE 4.1
Sun Java System (SJS) Application Server Platform Edition 8 2005Q1
Java Standard Development Kit (JDKTM) 1.4.2 版或 5.0 版
注册 Sun Java System Application Server
在使用 J2EE 项目之前,必须先注册 SJS Application Server 的实例。如果安装了 NetBeans IDE 4.1/SJS Application Server 包,则会自动注册本地应用服务器。
1 从主窗口中选择“工具”>“服务器管理器”。
2 单击“添加服务器”。选择 Sun Java Systems Application Server 8.1,并为此实例指定一个名称。然后单击“下一步”。
3 指定应用服务器的安装目录(例如 C:\Sun\Appserver),然后单击“下一步”。
4 从“位置”组合框中,选择应用服务器本地实例的位置。
5 (可选)输入管理员用户名和口令。如果不希望在 IDE 用户目录中存储用户名和口令,可以将这些字段保留为空。IDE 在每次需要此信息时会提示您输入。
注意:缺省的管理员口令是 adminadmin。
6 单击“运行环境”窗口,然后展开“服务器”节点。此时将列出 SJS Application Server。
7 右键单击应用服务器的节点并选择“启动/停止服务器”,然后单击“启动服务器”。服务器立即被启动。
导入整个企业应用程序
如果企业应用程序符合以下规则,则可以一次性导入整个应用程序:
遵循 Java BluePrints 对企业应用程序项目结构的建议。
您不希望使用现有的 Ant 生成脚本来生成企业应用程序的模块,则 IDE 会为每个模块创建生成脚本。
注意:有些旧版本的 cmpcustomer 示例与 BluePrints 不相符。如果 IDE 不允许将示例作为项目打开,请转至 http://java.sun.com/j2ee/1.4/download.html 下载最新版本的 J2EE 样例。
创建并配置项目
1 选择“文件”>“新建项目”(Ctrl-Shift-N)。
2 选择“企业”>“包含现有源的企业应用程序”。单击“下一步”。
3 在“位置”字段中,键入或找到包含企业应用程序的文件夹。此文件夹应包含企业应用程序的 src 文件夹,并且是各应用程序模块的顶层文件夹。在本示例中,应输入 cmpcustomer 文件夹。
4 将项目命名为 cmpcustomer(或指定任意名称),然后指定项目文件夹的位置。我们将此位置称为 NetBeans_projects。对于“包含现有源的企业应用程序”,不能在与源文件夹相同的位置创建项目文件夹。
5 选择项目的 J2EE 版本。此设置定义了 IDE 将使用哪一版本的 J2EE 规范来生成代码及维护部署描述符。
6 设置项目的目标应用服务器,然后单击“完成”。IDE 将为企业应用程序及其各个模块创建标准 IDE 项目。
注意:IDE 将显示一条警告,提示您检查 sun-application.xml 文件中的 context-root 元素。这是因为 IDE 不知道模块的 JAR 文件和 WAR 文件所使用的名称,因此为它们指定了其自身的名称。
7 展开 cmpcustomer 项目的“配置文件”节点,右键单击 sun-application.xml,然后选择“编辑”。
8 将 web-uri 元素更改为 cmpcustomer-war.war。保存并关闭文件。
设置项目类路径
由于企业应用程序的部署描述符不包含应用程序模块间的类路径关系的任何信息,因此您必须自己配置类路径。
1 在“项目”窗口中,右键单击 cmpcustomer-war 项目节点,然后选择“属性”。在对话框的左面板中选择“库”。
2 单击“添加项目”,为 cmpcustomer-ejb 项目选择项目文件夹 (NetBeans_projects/cmpcustomer/cmpcustomer-ejb),然后单击“确定”。此时会将 EJB 模块的类添加到 Web 模块的类路径中。
注意:必须为 cmpcustomer-ejb 项目选择项目文件夹,而不是 cmpcustomer-ejb 源文件夹。
配置数据库和 JDBC 资源
SJS Application Server 带有一个预先配置的 PointBase 数据库(名为 sun-appserver-samples),该数据库中包含此示例所需的表。如果更改或删除了这些表,则可以使用 SQL 脚本在 cmpcustomer/setup 文件夹中重新创建它们。
为使 EJB 模块能够访问此数据库,必须在服务器上为数据库创建连接池和数据库资源。可以在 EJB 模块项目中使用服务器资源文件执行此操作。
1 右键单击 cmpcustomer-ejb 项目并选择“新建”>“文件/文件夹”。从“Sun 资源”类别中,选择“JDBC 连接池”模板并单击“下一步”。
2 在“JDBC 连接池名称”字段中,键入 cmpcustomerPool。选择“从现有的连接提取”单选按钮,然后从组合框中选择 sun-appserver-samples 数据库。单击“下一步”。
3 键入 pbpublic 作为“口令”属性的值,然后单击“完成”。此时,连接池节点将出现在项目的“服务器资源”节点下。
现在,我们将创建连接到连接池的数据库资源。
1 右键单击 cmpcustomer-ejb 项目并选择“新建”>“文件/文件夹”。从“Sun 资源”类别中,选择“JDBC 资源”模板并单击“下一步”。
2 选择“使用现有的 JDBC 连接池”,然后从组合框中选择 cmpcustomerResource。
3 在“JNDI 名称”字段中键入 jdbc/cmpcustomer,然后单击“完成”。此时,资源节点将出现在项目的“服务器资源”节点下。
最后,我们必须对 EJB 模块进行配置,以便在查找数据库时使用正确的 JNDI 名称。
1 展开“配置文件”节点并双击 sun-ejb-jar.xml。
2 在“CMP 资源”部分的“Jndi 名称”字段中,键入 jdbc/cmpcustomer。保存并关闭文件。
运行应用程序
1 如果 cmpcustomer 项目不是主项目,请右键单击项目节点,然后选择“设置主项目”。
2 选择“运行”>“运行主项目”。IDE 将为项目生成 EAR 文件,并将其部署到应用服务器中。
导入单个模块
在以下情况中,可能需要导入单个模块:
企业应用程序不符合 BluePrints 建议。
模块是独立的 EJB 模块或 Web 应用程序。
您希望使用自己的 Ant 生成脚本来生成、部署及调试模块。
我们将通过单独导入 cmpcustomer-ejb 模块来加以说明。可以使用两个模板来导入单个 EJB 模块:
包含现有源的 EJB 模块
使用此项目模板可创建标准的 EJB 模块项目。标准的 EJB 模块项目使用 IDE 来编译、运行和调试 EJB 模块。
包含现有 Ant 脚本的 EJB 模块
使用此项目模板可创建自由格式的 EJB 模块项目。自由格式的 EJB 模块项目使用您自己的 Ant 脚本来编译和运行 EJB 模块,以及启动 NetBeans 调试器。
注意:不能在多个 IDE 项目中使用一个源文件夹。如果您已经按如上所述为 cmpcustomer 示例创建了“包含现有源的企业应用程序”项目,则必须关闭该项目,退出 IDE,删除该项目的项目文件夹,然后重新启动 IDE。
使用 IDE 进行生成、部署和调试
在创建标准的 EJB 模块项目时,IDE 会创建一个 Ant 生成脚本和一些属性文件,这些属性文件控制项目的生成和部署方式。在设置项目选项时,IDE 会更新 Ant 脚本。
创建项目
1 选择“文件”>“新建项目”(Ctrl-Shift-N)。
2 选择“企业”>“包含现有源的 EJB 模块”。单击“下一步”。
3 在“位置”字段中,键入或找到包含 EJB 模块源的文件夹。通常,此文件夹应包含 EJB 模块的 src 文件夹,但它也可以是任意文件夹。IDE 可以满足任何 EJB 模块结构的需要。在本示例中,应输入 cmpcustomer/cmpcustomer-ejb 文件夹。
4 将项目命名为 cmpcustomer-ejb(或指定任意名称),然后指定项目文件夹的位置。
5 设置项目的目标应用服务器。
6 选择项目的 J2EE 版本。此设置定义了 IDE 将使用哪一版本的 J2EE 规范来生成代码及维护部署描述符。
7 单击“下一步”。在“现有的源和库”页中,可以配置较复杂的 EJB 模块项目。可以添加多个源目录,指定代码文件夹的位置(如果它不在常规位置上),还可以指定库文件夹。创建项目时,库文件夹中的所有文件夹和 JAR 文件会添加到项目的类路径中。
注意:如果 cmpcustomer-ejb 模块的源目录以红色突出显示,并且“完成”按钮处于禁用状态,则说明源根目录已经是某个打开项目的一部分。如果您已经按如上所述为 cmpcustomer 示例创建了“包含现有源的企业应用程序”项目,则必须关闭该项目,退出 IDE,删除该项目的项目文件夹,然后重新启动 IDE。
8 单击“完成”而不更改“现有的源和库”页中的任何设置。IDE 将创建该 EJB 模块项目。
注意:如果要运行该模块,可能必须配置数据库和 JDBC 资源。
使用您自己的 Ant 脚本进行生成、部署和调试
在创建自由格式的 EJB 模块项目时,IDE 将使用您的 Ant 生成脚本来生成和部署项目。在 IDE 中,您必须对项目进行设置,以镜像项目的 Ant 脚本中包含的设置。此外,您还必须编写自己的目标,以便在 NetBeans 中调试项目。
创建项目
1 选择“文件”>“新建项目”(Ctrl-Shift-N)。
2 选择“常规”>“包含现有 Ant 脚本的 EJB 模块”。单击“下一步”。
3 键入或找到包含 EJB 模块源的文件夹。通常,此文件夹应包含 EJB 模块的 src 文件夹,但它也可以是任意文件夹。IDE 可以满足任何 EJB 模块结构的需要。在本示例中,应输入 cmpcustomer/cmpcustomer-ejb 文件夹。IDE 将自动填充生成脚本的名称。
注意:cmpcustomer-ejb 的生成脚本将导入 Sun/AppServer/samples/ 目录中的标准 common-ant.xml 生成脚本。该生成脚本假定样例目录也位于 AppServer 目录中。如果单独下载了样例,并将其安装在不同的位置上,IDE 将提示 cmpcustomer-ejb 项目的 build.xml 不是有效的生成脚本。在文本编辑器中打开生成脚本,并对以下行进行编辑,以指向 common-ant.xml 的正确位置:
<!DOCTYPE project [ <!ENTITY include SYSTEM "../../../../../common-ant.xml"> ]>
4 指定项目名称及项目文件夹的位置,然后单击“下一步”。
将 Ant 目标与 IDE 命令链接在一起
1 在向导的“生成和运行”页中,指定 IDE 应为项目命令运行哪些目标。IDE 会为每项操作提供建议的目标。请为每项操作指定以下目标:
生成项目:core
清除项目:clean
生成 Javadoc:javadocs
运行项目:update
配置源文件夹
1 在向导的“EJB 源”页中,指定包含模块部署描述符的文件夹。在本示例中,配置文件的文件夹为 cmpcustomer/cmpcustomer-ejb/src/conf。
2 在“服务器资源文件夹”字段中,可以指定一个包含 IDE 生成的所有服务器资源文件的文件夹。服务器资源文件是 XML 文件,IDE 将使用这些文件在 SJS Application Server 中自动配置资源(如 JDBC 连接池和数据源)。在“服务器资源文件夹”字段中键入 cmpcustomer/cmpcustomer-ejb/setup。
注意:在 IDE 中,模块的类路径设置不用于编译或执行操作。Ant 脚本将处理这些任务的类路径。这些设置向 IDE 表明哪些类包含在代码完成和重构中。
3 在“服务器类型”组合框中,选择 "Sun Java Systems Application Server 8.1"。
4 在“J2EE 版本”组合框中,选择 "J2EE 1.4"。此设置定义了 IDE 将使用哪一版本的 J2EE 规范来生成代码及维护部署描述符。
5 单击“下一步”。
6 在向导的“源包”页中,可以添加其他源根目录,并对包根目录进行测试。由于本示例只有一个源根目录,因此不必在此页中进行任何配置。
7 在“源级别”组合框中,选择 "JDK 1.4"。此设置会通知 IDE 在代码完成和错误突出显示中使用 J2SE 平台的哪些类。它不会设置项目的目标 JDK。您必须在 Ant 脚本中设置目标 JDK。
注意:IDE 将在其注册的所有 Java 平台中查找具有匹配版本号的平台,并使用此平台提供用于调试的 Javadoc 和源代码。要注册 Java 平台并指定平台的源代码和 Javadoc 位置,请选择“工具”>“平台管理器”。
8 单击“完成”。cmpcustomer-ejb 项目将同时显示在“项目”窗口和“文件”窗口中。
配置项目类路径
在自由格式项目中,Ant 脚本将管理所有类路径设置。在 IDE 中,可以声明项目的类路径,以便与 Ant 脚本中定义的设置相匹配。这些设置用于为项目提供代码完成、错误突出显示以及重构功能。
对于所有自由格式的 EJB 模块项目,必须将 j2ee.jar 库从本地 SJS Application Server 安装添加到类路径中。
1 在“项目”窗口中,右键单击 cmpcustomer-ejb 项目节点,然后选择“属性”。
2 在对话框的右面板中单击“Java 源代码类路径”。单击“添加 JAR/文件夹”。在应用服务器的安装文件夹中找到 lib 文件夹,选择 j2ee.jar,然后单击“打开”。
配置项目输出
要设置项目间的依赖关系,IDE 需要了解生成输出以及 Javadoc 输出目录的名称和位置。应在项目的属性中声明这些内容。
1 在“项目”窗口中,右键单击 cmpcustomer-ejb 项目节点,然后选择“生成项目”以产生生成输出。
2 右键单击 cmpcustomer-ejb 项目节点,然后选择“为项目生成 Javadoc”以生成 Javadoc 输出目录。
3 右键单击 cmpcustomer-ejb 项目节点,然后选择“属性”。
4 在对话框的右面板中单击“输出”。指定各个生成输出及 Javadoc 输出目录,然后单击“关闭”。
更多后续步骤:
NetBeans IDE 4.1 快速入门指南:
用于 J2SE 应用程序用于 Web 应用程序用于 Web 服务用于 J2EE 应用程序用于 J2ME MIDP 应用程序NetBeans IDE 4.1 导入指南:用于 J2SE 应用程序用于 Web 应用程序用于 J2ME MIDP 应用程序NetBeans IDE 支持和文档页