在 NetBeans IDE 5.5 中导入 Java EE 应用程序
本文档介绍了如何将现有的 JavaTM EE 企业应用程序导入到 NetBeansTM IDE 项目中。我们将通过导入 J2EE 1.4 SDK 样例中包含的 cmpcustomer 示例应用程序来加以说明。
cmpcustomer 应用程序包含一个 src 文件夹(包含企业应用程序部署描述符)、一个 cmpcustomer-ejb 文件夹(包含 EJB 模块源)以及一个 cmpcustomer-war 文件夹(包含 Web 应用程序客户端源)。
cmpcustomer 样例源代码位于 Sun/AppServer/samples/ejb/cmp/apps/cmpcustomer 文件夹中。如果您没有 J2EE 1.4 SDK 样例,可以从 http://java.sun.com/j2ee/1.4/download.html 下载。请确保将样例提取到应用服务器安装目录的 samples 文件夹中。
注意: 本指南使用相同的项目源来说明如何按以下方式导入项目:
导入整个企业应用程序。
仅导入 EJB 模块。
导入 EJB 模块并使用模块的现有 Ant 脚本来生成和部署项目。
但是,在 IDE 中,每次只能在一个项目中使用源根目录。如果要创建每一种项目类型(三种),必须在创建新项目之前删除每个现有项目。可以使用以下方法来删除某个项目:在“项目”窗口中右键单击其项目节点,然后选择“删除项目”。在“删除项目”对话框中,确保未选定删除项目源的选项。
入门指南
在开始之前,我们先准备好所有必需的软件并设置好环境。
安装软件
开始之前,您需要在计算机中安装以下软件:
NetBeans IDE 5.5(下载 )
Sun JavaTM System Application Server Platform Edition 9.0(下载 )
Java Standard Development Kit (JDKTM ) 版本 5.0 或版本 6.0(下载 )
注意: NetBeans IDE 5.5 同时还支持 Sun Java System Application Server 8.1 和 8.2。应用服务器的 8.1 版使用 PointBase 数据库服务器而不是 Apache Derby,但是导入项目的过程是相同的。
注册 Sun Java System Application Server
在使用 J2EE 项目之前,必须注册 Sun Java System Application Server 实例。如果安装了 NetBeans IDE 5.5/Sun Java System Application Server 包,则会自动注册本地应用服务器。
从主窗口中,选择“工具”>“服务器管理器”。
单击“添加服务器”。选择 "Sun Java System Application Server",并为此实例指定一个名称,然后,单击“下一步”。
指定应用服务器的安装目录(例如,C:\Sun\Appserver )。
将“注册本地缺省域”单选按钮保留为选中状态,然后选择一个域。
(可选)单击“下一步”,输入管理员用户名和口令。如果不希望在 IDE 用户目录中存储用户名和口令,可以将这些字段保留为空。IDE 在每次需要此信息时会提示您输入。 注意: 缺省管理员口令是 adminadmin 。
单击“完成”。
单击“运行环境”窗口,然后展开“服务器”节点。将列出 Sun Java System Application Server。
右键单击应用服务器的节点,然后选择“启动服务器”。
导入整个企业应用程序
如果满足以下任何条件,则可以一次导入整个企业应用程序:
项目遵循 Java BluePrints 对企业应用程序项目结构的建议。
您不希望使用现有的 Ant 生成脚本来生成企业应用程序的模块。则 IDE 会为每个模块创建生成脚本。
注意: 有些旧版本的 cmpcustomer 示例与 BluePrints 不兼容。如果 IDE 不允许将示例作为项目打开,请转至 http://java.sun.com/j2ee/1.4/download.html 下载最新版本的 J2EE 样例。
创建项目
如果已使用 cmpcustomer 示例中的任何源根目录创建了某个项目,请右键单击该项目,然后选择“删除项目”。在“删除项目”对话框中,确保未选定删除项目源的选项。
选择“文件”>“新建项目”(Ctrl-Shift-N)。
选择“企业”>“基于现有源代码的企业应用程序”。单击“下一步”。
在“位置”字段中,键入或找到包含企业应用程序的文件夹。此文件夹应包含企业应用程序的 src 文件夹,并且是各应用程序模块的顶级文件夹。在本示例中,应输入 samples/ejb/cmp/apps/cmpcustomer 文件夹。
将项目命名为 cmpcustomer (或指定任意名称),然后指定项目文件夹的位置。我们将此位置称为 NetBeans_projects 。对于基于现有源代码的企业应用程序,不能在与源文件夹相同的位置创建项目文件夹。
选择项目的 J2EE 版本。此设置定义了 IDE 将使用哪一版本的 J2EE 规范来生成代码及维护部署描述符。在本示例中,我们将 J2EE 版本保留为 J2EE 1.4。
设置项目的目标应用服务器,然后单击“完成”。IDE 将为企业应用程序及其各个模块创建标准 IDE 项目。
配置项目
在创建项目时,IDE 将显示一条警告,提示您检查 sun-application.xml 文件中的 context-root 元素。这是因为 IDE 无法识别模块 JAR 文件和 WAR 文件的名称,而为它们指定了其本身的名称。因此,IDE 将创建包含更正的 JAR 和 WAR 文件名称的新部署描述符。还会保存原始部署描述符。应使用新的部署描述符,但需要更改某些设置。
在 application.xml 和 sun-application.xml 中,为 Web 模块设置正确的上下文根目录。双击 application.xml 并将 context-root 元素由 cmpcustomer-war 更改为 customer 。然后,双击 sun-application.xml 以在可视编辑器中将其打开,展开 EAR 节点,然后选择 cmpcustomer-war.war 节点。将“上下文根目录”字段由 cmpcustomer-war 更改为 customer 。
在 cmpcustomer-ejb 项目中,展开“配置文件”,双击 sun-ejb-jar.xml ,然后将“在部署时创建表”设置为 True。选择“文件”>“全部保存”以保存所做的更改。
Web 模块的 LocalStrings.properties 文件位于错误的位置。将该文件从 cmpcustomer-war/src/conf 文件夹移到 cmpcustomer-war/src/java 文件夹中。
设置项目类路径
由于企业应用程序的部署描述符不包含应用程序模块间的类路径关系的任何信息,因此您必须自己配置类路径。
在“项目”窗口中,展开 cmpcustomer-war 项目节点的“库”节点。请注意,它仅列出了项目的目标 JDK 和应用服务器。
右键单击“库”节点,然后选择“添加项目”。
为 cmpcustomer-ejb 项目选择项目文件夹 (NetBeans_projects /cmpcustomer/cmpcustomer-ejb ),然后单击“确定”。此时会将 EJB 模块的类添加到 Web 模块的类路径中。 注意: 必须在 NetBeans_projects 中选择 cmpcustomer-ejb 项目的项目文件夹,而不是在 samples 文件夹中选择 cmpcustomer-ejb 源文件夹。
配置数据库和 JDBC 资源
在部署 cmpcustomer 应用程序时,可以将该应用程序设置为创建所有数据库表。您只需指定创建表所在的 Derby 数据库。在 IDE 中注册 Sun Java System Application Server 时,将在 home 目录的 .netbeans-derby 文件夹中创建一个名为 sample 的预配置 Derby 数据库。可以使用此数据库作为目标数据库。
为使 EJB 模块能够访问此数据库,必须在服务器上为数据库创建连接池和数据库资源。可以在 EJB 模块项目中使用服务器资源文件执行此操作。
右键单击 cmpcustomer-ejb 项目,然后选择“新建”>“文件/文件夹”。从“Sun 资源”类别中,选择“JDBC 连接池”模板,然后单击“下一步”。
在“JDBC 连接池名称”字段中,键入 cmpcustomerPool 。选择“从现有的连接提取”单选按钮,然后从组合框中选择 sample 数据库。单击“下一步”。
键入 app 作为“口令”属性的值,然后单击“完成”。此时,连接池节点将出现在项目的“服务器资源”节点下。
现在,我们将创建连接到连接池的数据库资源。
右键单击 cmpcustomer-ejb 项目,然后选择“新建”>“文件/文件夹”。从“Sun 资源”类别中,选择“JDBC 资源”模板,然后单击“下一步”。
选择“使用现有 JDBC 连接池”,然后从组合框中选择 "cmpcustomerPool"。
在“JNDI 名称”字段中键入 jdbc/cmpcustomer ,然后单击“完成”。此时,资源节点将出现在项目的“服务器资源”节点下。
最后,我们必须对 EJB 模块进行配置,以便在查找数据库时使用正确的 JNDI 名称。
展开“配置文件”节点并双击 sun-ejb-jar.xml 。
在“CMP 资源”部分的“JNDI 名称”字段中,键入 jdbc/cmpcustomer 。保存并关闭文件。
运行应用程序
如果 cmpcustomer 项目不是主项目,请右键单击项目节点,然后选择“设置主项目”。
选择“运行”>“运行主项目”。IDE 将为项目生成 EAR 文件,并将其部署到应用服务器中。
疑难解答
IDE 不支持您完成“新建向导”,并提示选定的位置不包含结构符合 BluePrints 建议的应用程序。这可能是因为您使用了旧版的 cmpcustomer 示例。请转至 http://java.sun.com/j2ee/1.4/download.html 下载最新版本的 J2EE 样例。
试图创建或搜索客户时出现 EJBException 。请通过选择“工具”>“Derby 数据库”>“启动 Derby 服务器”来确保 Derby 数据库服务器正在运行。
所有 JSP 页均无法正确显示文本。确保将 LocalStrings.properties 文件从 src/conf 文件夹移到 Web 应用程序的 src/java 文件夹中。
在尝试创建客户或搜索客户时,将出现以下错误:创建客户失败:javax.ejb.EJBException:事务终止;嵌套异常为:javax.transaction.RollbackException:事务标记为回滚。请检查您是否正确地为示例创建和配置了 JDBC 资源 。此外,还要检查 cmpcustomerPool 连接池是否存在以及是否包含缺省口令。要查看连接池,请转至“运行环境”窗口,然后展开应用服务器的 "JDBC" >“连接池”。要检查它是否包含口令,请双击 "cmpcustomerPool",然后单击“属性”的省略号按钮,并确保“口令”属性设置为 app 。
导入单个模块
在以下情况中,可能需要导入单个模块:
企业应用程序不符合 BluePrints 建议。
模块是独立的 EJB 模块或 Web 应用程序。
您希望使用自己的 Ant 生成脚本来生成、部署及调试模块。
我们将通过单独导入 cmpcustomer-ejb 模块来加以说明。您可以使用两个模板来导入单个 EJB 模块:
使用 IDE 进行生成、部署和调试
在创建标准的 EJB 模块项目时,IDE 会创建一个 Ant 生成脚本和一些属性文件,这些文件控制项目的生成和部署方式。在设置项目选项时,IDE 会更新 Ant 脚本。
创建项目
如果已使用 cmpcustomer 示例中的任何源根目录创建了某个项目,请右键单击该项目,然后选择“删除项目”。在“删除项目”对话框中,确保未选定删除项目源的选项。
选择“文件”>“新建项目”(Ctrl-Shift-N)。
选择“企业”>“基于现有源代码的 EJB 模块”。单击“下一步”。
在“位置”字段中,键入或找到包含 EJB 模块源的文件夹。通常,此文件夹应包含 EJB 模块的 src 文件夹,但它也可以是任意文件夹。IDE 可以满足任何 EJB 模块结构的需要。在本示例中,应输入 samples/ejb/cmp/apps/cmpcustomer/cmpcustomer-ejb 文件夹。
将项目命名为 cmpcustomer-ejb-standard (或指定任意名称),然后指定项目文件夹的位置。注意,不能使用 cmpcutomer-ejb 文件夹作为项目文件夹,因为它已包含了 build.xml ,这会与 IDE 生成的 build.xml 发生冲突。
设置项目的目标应用服务器。
选择项目的 J2EE 版本。此设置定义了 IDE 将使用哪一版本的 J2EE 规范来生成代码及维护部署描述符。
单击“下一步”。在“现有源代码和库”页中,可以配置较复杂的 EJB 模块项目。可以添加多个源代码目录,指定 conf 文件夹的位置(如果它不在通常的位置上),还可以指定库文件夹。创建项目时,库文件夹中的所有文件夹和 JAR 文件会添加到项目的类路径中。
单击“完成”而不更改“现有源代码和库”页中的任何设置。IDE 将创建该 EJB 模块项目。注意: 如果要运行该模块,则必须配置数据库和 JDBC 资源 。
使用您自己的 Ant 脚本进行生成、部署和调试
在创建自由格式的 EJB 模块项目时,IDE 将使用您的 Ant 生成脚本来生成和部署项目。在 IDE 中,您必须对项目进行设置,以镜像项目的 Ant 脚本中包含的设置。此外,您还必须编写自己的目标,以便在 NetBeans 中调试项目。
注意: 在使用 cmpcustomer 应用程序的 Ant 脚本生成和部署项目之前,必须在 Sun/AppServer/samples/common.properties 文件中提供有关服务器安装和域配置的信息。
创建项目
如果已使用 cmpcustomer 示例中的任何源根目录创建了某个项目,请右键单击该项目,然后选择“删除项目”。在“删除项目”对话框中,确保未选定删除项目源的选项。
选择“文件”>“新建项目”(Ctrl-Shift-N)。
选择“企业”>“包含现有 Ant 脚本的 EJB 模块”。单击“下一步”。
键入或找到包含 EJB 模块源的文件夹。通常,此文件夹应包含 EJB 模块的 src 文件夹,但它也可以是任意文件夹。IDE 可以满足任何 EJB 模块结构的需要。在本示例中,应输入 samples/ejb/cmp/apps/cmpcustomer/cmpcustomer-ejb 文件夹。IDE 将自动填充生成脚本的名称。 注意: cmpcustomer-ejb 模块的生成脚本将导入 Sun/AppServer/samples/ 目录中的标准 common-ant.xml 生成脚本。该生成脚本假定样例目录也位于 AppServer 目录中。如果单独下载了样例并将其安装在不同的位置上,IDE 将提示 build.xml 不是有效的生成脚本。在文本编辑器中打开生成脚本,并对以下行进行编辑,以指向 common-ant.xml 的正确位置:
<!DOCTYPE project [ <!ENTITY include SYSTEM "../../../../../common-ant.xml"> ]>
将项目命名为 cmpcustomer-ejb-freeform ,并指定项目文件夹的位置。然后,单击“下一步”。
将 Ant 目标与 IDE 命令链接在一起
在向导的“生成和运行”页中,指定 IDE 应为项目命令运行哪些目标。IDE 会为每项操作提供建议的目标。请为每项操作指定以下目标:
生成项目:core
清理项目:clean
生成 Javadoc:javadocs
运行项目:update
测试项目:保留为空
部署项目:update
单击“下一步”。
配置源文件夹
在向导的“EJB 源”页中,指定包含模块部署描述符的文件夹。在本示例中,配置文件的文件夹为 cmpcustomer/cmpcustomer-ejb/src/conf 。
在“服务器资源文件夹”字段中,可以指定一个包含 IDE 生成的所有服务器资源文件的文件夹。服务器资源文件是 XML 文件,IDE 将使用这些文件在 Sun Java System Application Server 中自动配置资源(如 JDBC 连接池和数据源)。
在“服务器类型”组合框中,选择 "Sun Java System Application Server"。
在“J2EE 版本”组合框中,选择 "J2EE 1.4"。此设置定义了 IDE 将使用哪一版本的 J2EE 规范来生成代码及维护部署描述符。
单击“下一步”。
在向导的“源包”页中,可以添加其他源根目录,并对包根目录进行测试。由于本示例只有一个源根目录,因此不必在此页中进行任何配置。
在“源代码级别”组合框中,选择 "JDK 1.4"。此设置将提示 IDE 哪些 Java SE 平台类使用代码完成和错误突出显示。它不会设置项目的目标 JDK。您必须在 Ant 脚本中设置目标 JDK。注意: IDE 将在其注册的所有 Java 平台中查找具有匹配版本号的平台,并使用此平台提供用于调试的 Javadoc 和源代码。要注册 Java 平台并指定平台的源代码和 Javadoc 位置,请选择“工具”>“平台管理器”。
单击“完成”。将在“项目”窗口和“文件”窗口中显示 cmpcustomer-ejb-freeform 项目。
配置项目类路径
在自由格式项目中,Ant 脚本将管理所有类路径设置。在 IDE 中,可以声明项目的类路径,以便与 Ant 脚本中定义的设置相匹配。这些设置用于为项目提供代码完成、错误突出显示以及重构功能。
对于所有自由格式的 EJB 模块项目,必须将本地 Sun Java System Application Server 安装中的 j2ee.jar 库添加到类路径上。
在“项目”窗口中,右键单击 cmpcustomer-ejb-freeform 项目节点,然后选择“属性”。
在对话框的右面板中单击“Java 源代码类路径”。单击“添加 JAR/文件夹”。在应用服务器的安装文件夹中导航至 lib 文件夹,选择 j2ee.jar ,然后单击“打开”。
配置项目输出
要设置项目间的依赖关系,IDE 需要了解生成输出以及 Javadoc 输出目录的名称和位置。应在项目的属性中声明这些内容。
在“项目”窗口中,右键单击 cmpcustomer-ejb-freeform 项目节点,然后选择“生成项目”以产生生成输出。
右键单击 cmpcustomer-ejb-freeform 项目节点,然后选择“为项目生成 Javadoc”以生成 Javadoc 输出目录。
右键单击 cmpcustomer-ejb-freeform 项目节点,然后选择“属性”。
在对话框的右面板中单击“输出”。指定各个生成输出及 Javadoc 输出目录,然后单击“关闭”。
后续步骤
有关使用 NetBeans IDE 5.5 的更多信息,请参见以下资源:
要发送意见和建议、获得支持以及随时了解 NetBeans IDE Java EE 开发功能的最新开发情况,请加入
nbj2ee
@
netbeans.org
邮件列表 。