FeaturesPluginsDocs & SupportCommunityPartners

将现有的 Web 应用程序导入到 NetBeans IDE 5.5 中

通过使用以下两个项目模板,您可以基于现有的 Web 应用程序来创建 NetBeans IDE 5.5 项目:

在本文档中,您将首先使用一个假设的 Web 应用程序来学习如何导入本身没有 Ant 生成脚本的源代码。在第一个方案中,NetBeans IDE 将创建一个 Ant 生成脚本。在第二个方案中,您将导入 Tomcat Web Server 的样例 "Hello World" 应用程序,该应用程序与 NetBeans IDE 5.5 安装捆绑在一起。此样例应用程序本身带有 Ant 生成脚本。在文档的这一部分,您将了解如何导入源代码(如果您希望使用自己的 Ant 生成脚本来处理 Web 应用程序)。

选择服务器

在开始编写代码之前,您必须确保已安装了所有必需的软件,并且正确设置了项目。

安装软件

在开始之前,您需要在计算机中安装以下软件:

  • NetBeans IDE 5.5(下载
  • Java Standard Development Kit (JDKTM) 版本 5.0 或版本 6.0(下载

(可选)您可以下载并使用以下某个应用服务器:

  • Sun Java System (SJS) Application Server
  • JBoss Application Server
  • WebLogic Application Server
然而,与 IDE 捆绑在一起的 Tomcat Web Server 为二层 Web 应用程序(如本导入指南所介绍的 Web 应用程序)提供了所需的全部支持。仅当要开发企业应用程序时才需要使用应用服务器。

注册服务器

捆绑的 Tomcat Web Server 是在 IDE 中自动注册的。但是,在部署到 SJS Application Server、JBoss 或 WebLogic 之前,必须在 IDE 中注册一个本地实例。如果安装了 NetBeans IDE 5.5/SJS Application Server 包,则会自动注册本地 SJS Application Server。

  1. 从主窗口中,选择“工具”>“服务器管理器”。
  2. 单击“添加服务器”。选择服务器,并为该实例指定名称。然后,单击“下一步”。
  3. 指定服务器信息、应用服务器本地实例的位置以及要将 Web 应用程序部署到的域。

使用 IDE 生成、运行和调试

在创建标准 Web 应用程序项目时,IDE 会创建一个 Ant 生成脚本和一些属性文件,这些文件控制项目的生成和部署方式。在设置项目选项时,IDE 会更新 Ant 脚本。

选择项目类型

  1. 选择“文件”>“新建项目”(Ctrl-Shift-N)。
  2. 选择 "Web" >“基于现有源代码的 Web 应用程序”。单击“下一步”。

设置项目名称和位置

  1. 在“位置”中,单击“浏览”以选择 Web 应用程序的 Web 模块根目录。
  2. 在“项目名称”中,键入项目的名称。此名称也可以用来设置上下文路径。

    注意:上下文路径不能包含空格。如果项目名称包含空格,则它们在上下文路径中被替换为下划线。例如,名为 "Servlet Examples" 的项目,其上下文路径应为 "/servlet_examples"

  3. 在“项目文件夹”中,单击“浏览”以选择放置项目的文件夹。

    注意:项目文件夹不能包含一个名为 nbproject 的文件夹,因为该名称是 IDE 为保存项目级别的文件而创建的文件夹名称。

  4. 将“设置为主项目”复选框保留为选中状态,单击“下一步”。

选择现有源代码和库

  1. 在“Web 页”文件夹中,请检查是否正确填写了位置。
  2. (可选)将 JAR 文件添加到库文件夹中。
  3. 然后指定源包文件夹。

    注意:源根目录不能被所装入的其他项目拥有。此外,源根目录也不能被同一项目的其他编译单元拥有。例如,源包文件夹不能是同一项目的测试包文件夹。

  4. (可选)添加 JUnit 测试包文件夹。
  5. 单击“完成”。此时,会在 IDE 中打开该项目。您可以在“项目”窗口中查看其逻辑结构,在“文件”窗口中查看其文件结构。

创建项目之间的依赖关系

在为每个源根目录创建单独的项目时,必须设置项目之间的类路径依赖关系。通常,您可以设置一个主项目和多个所需的项目。所需的项目是指已添加到其他项目类路径中的项目。

注意:NetBeans IDE 4.1 Applet 教程介绍了创建项目间依赖关系的作用。

  1. 请右键单击要在其中添加所需项目的项目,然后选择“属性”。
  2. 在“项目属性”对话框的左面板中,单击“库”。“库”窗格会列出该项目的所有必需项目。
  3. 单击“添加项目”。
  4. 选择项目的项目目录,您要将该项目的 JAR 文件添加到类路径中。IDE 项目目录均带有(图标)标记。选择项目目录时,将显示项目名称和项目 JAR 文件。
  5. 单击“添加项目 JAR 文件”。

运行应用程序

  • 选择“运行”>“运行主项目”来运行 Web 应用程序。

使用您自己的 Ant 脚本生成、运行和调试

创建自由格式的 Web 应用程序项目时,IDE 将使用 Ant 生成脚本来生成和部署项目。在 IDE 中,您必须对项目进行设置,以镜像项目的 Ant 脚本中包含的设置。此外,还必须编写自己的目标,以便在 IDE 中调试项目。

选择项目类型

  1. 选择“文件”>“新建项目”(Ctrl-Shift-N)。
  2. 选择 "Web" >“包含现有 Ant 脚本的 Web 项目”。单击“下一步”。

设置项目名称和位置

  1. 在“位置”中,单击“浏览”并选择 Web 模块根目录。在本示例中,该根目录是 NetBeans IDE 安装文件夹中的 Tomcat Web Server 的 sample 文件夹:
  2. enterprise3\apache-tomcat-5.5.17\webapps\tomcat-docs\appdev\sample
  3. 在“项目文件夹”中,单击“浏览”以选择放置项目的文件夹。

    注意:项目文件夹不能包含一个名为 nbproject 的文件夹,因为该名称是 IDE 为保存项目级别的文件而创建的文件夹名称。

  4. 将“设置为主项目”复选框保留为选中状态,单击“下一步”。

将 Ant 目标链接到 IDE 命令

  1. 将 Ant 生成脚本中的 Ant 目标链接到 IDE 中的项目命令:
    • 对于“生成项目”,请选择 compile
    • 对于“清理项目”,请选择 clean
    • 对于“生成 Javadoc”,请选择 javadoc
    • 对于“运行项目”,请选择 install
    • 对于“部署项目”,请选择 reload
  2. 单击“下一步”。

设置 Web 源文件

  1. 在“Web 页”文件夹中,请检查是否正确填写了应用程序的 "web" 文件夹。
  2. 在“上下文路径”文本框中,键入 /MyProject。单击“下一步”。

设置源包文件夹

  1. 在“源包文件夹”中,请检查是否正确填写了应用程序的 "src" 文件夹。

    注意:源根目录不能被所装入的其他项目拥有。此外,源根目录也不能被同一项目的其他编译单元拥有。例如,源包文件夹不能是同一项目的测试包文件夹。

  2. (可选)添加 JUnit 测试包文件夹。
  3. 在“源代码级别”中,选择 Ant 脚本在编译和运行时使用的 JDK。在此示例中,JDK 级别为 1.5。单击“下一步”。

设置类路径

  1. 单击“添加 JAR/文件夹”,找到 NetBeans IDE 安装文件夹中的 Servlet API:
    enterprise3/apache-tomcat-5.5.17/common/lib
    注意:此类路径不用于编译或执行,因为 Ant 脚本会处理这些任务的类路径。这些设置向 IDE 表明哪些类包含在代码完成和重构中。
  2. 单击“下一步”,然后单击“完成”。此时,会在 IDE 中打开该项目。您可以在“项目”窗口中查看其逻辑结构,并在“文件”窗口中查看其文件结构:

                

定制在 IDE 中使用的 Ant 生成脚本

在“项目”窗口中展开 MyProject 项目节点,并在源代码编辑器中打开 build.xml 文件,然后执行以下操作:

  1. 编辑文件和目录名称部分中的 app.name 属性以配置上下文路径:
         <property name="app.name" value="MyProject"/>
  2. 编辑文件和目录名称部分中的 catalina.home 属性,将该条目定义为指向 Tomcat Web Server。例如,如果 Tomcat Web Server 的版本为 5.5.7 并且 NetBeans IDE 是安装在缺省文件夹中,则可使用以下属性语句:
         <property name="catalina.home"
         value="C:\Program Files\netbeans-5.5\enterprise3\apache-tomcat-5.5.17"/>
  3. 如果要更改 Tomcat Web Server 的缺省端口号 (8080),请编辑文件和目录名称部分中的 manager.url 属性:
         <property name="manager.url"
         value="http://localhost:8084/manager"/>
  4. 编辑定制 Ant 任务定义部分,以设置 IDE 运行 Ant 生成脚本时所使用的环境变量 CLASSPATH。例如,您需要为 "deploy"、"list"、"reload" 以及 "undeploy" 任务提供如下条目:

        <path id="catalina.ant.cp">
           <pathelement path="${catalina.home}/server/lib/catalina-ant.jar"/>
        </path>
    <taskdef name="deploy"   classname="org.apache.catalina.ant.DeployTask" classpathref="catalina.ant.cp"/> <taskdef name="list"     classname="org.apache.catalina.ant.ListTask" classpathref="catalina.ant.cp"/> <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina.ant.cp"/> <taskdef name="undeploy" classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina.ant.cp" />

  5. 修改 install 目标和 reload 目标,方法是:在结束 </target> 标记上方添加下面一行:
        <nbbrowse url="http://localhost:8084/MyProject"/>

    缺省 installreload 目标在浏览器中不显示该应用程序。添加上面一行后,会打开 IDE 的缺省浏览器,并在这些目标的最后一步显示该应用程序。

  6. (可选)将您自己的目标添加到 Ant 生成脚本中,并将其映射到 IDE 中的项目命令。有关详细信息,请参见下面的“调试应用程序”部分。

部署应用程序

  1. 在“运行环境”窗口 (Ctrl-5) 中,展开“服务器”节点,然后检查 Tomcat Web Server 是否正在运行。如果未运行,请右键单击 Tomcat Web Server 的实例节点,然后从上下文菜单中选择“启动”。
  2. 在“项目”窗口中右键单击项目,然后从上下文菜单中选择“运行项目”。当 Ant 目标链接到 IDE 命令后,则表明已将 install 目标链接到“运行项目”命令中。这就是在运行项目时调用的目标。在应用程序已准备好进行部署时,将出现一个进度监视器窗口。

    注意:每次会话中,当首次运行应用程序时,Tomcat Web Server 会要求您输入用户名和口令。唯一可接受的用户名和口令是“管理员”角色用户所使用的用户名和口令。它是在 Tomcat Web Server 基目录的 conf/tomcat-users.xml 文件中定义的。要确定此目录的位置,请在“运行环境”窗口中右键单击 Tomcat Web Server 实例节点,然后选择“属性”。在“属性”对话框中,请将“基目录”属性指向 Tomcat Web Server 的基目录。

成功部署应用程序后,可以在“项目”窗口中右键单击项目,然后从上下文菜单中选择“重新部署项目”来重新部署该应用程序。当 Ant 目标链接到 IDE 命令后,则表明已将 reload 目标链接到“部署项目”命令中。这就是在运行项目时调用的目标。

调试应用程序

下面,我们将调试目标添加到项目中。运行调试目标时,会在调试器中运行该项目,并允许逐行执行代码。IDE 可以生成一个完整的调试目标。在提供了一些特定于项目的设置后,就可以进行下面的工作了。然而,有可能您已经具有了自己的调试目标。在这种情况下,请执行以下步骤:

  1. 展开“文件”窗口中的 nbproject 文件夹,双击 project.xml,以便在源代码编辑器中打开它。
  2. ide-actions 部分中,添加如下操作:
        <action name="debug">
           <script>path to my build script</script>
           <target>name of my debug target</target>
        </action>
  3. context-menu 部分中,添加新的 ide-action
        <ide-action name="debug"/>
  4. 现在,当右键单击项目节点时会看到“调试项目”项。
  5. 使用调试目标
如果您没有自己的调试目标,请按如下方式生成并使用一个调试目标:
  1. 从主菜单中选择“运行”>“调试主项目”(F5)。

    注意:系统会提示您让 IDE 在 nbproject/ide-targets.xml 中生成一个特定于 IDE 的调试目标。

  2. 单击“生成”。

    此时将在新的 ide-targets.xml 文件中生成一个完整的调试目标,并在新的 debug.properties 文件中定义所有属性,而 debug.properties 文件、ide-targets 文件以及 projects.xml 文件均会在源代码编辑器中打开。debug.properties 文件包含如下内容:

       jpda.session.name=MyProject
       jpda.host=localhost
    
       # Sun Java System Application Server using shared memory (on Windows)
       # jpda.address=localhost4848
       # jpda.transport=dt_shmem
    
       # Sun Java System Application Server using a socket
       # jpda.address=9009
       # jpda.transport=dt_socket
    
       # Tomcat using shared memory (on Windows)
       jpda.address=tomcat_shared_memory_id
       jpda.transport=dt_shmem
    
       # Tomcat using a socket
       # jpda.address=11555
       # jpda.transport=dt_socket
    
       src.folders=src
       web.docbase.dir=web
    
       # you can change this property to a list of your source folders
       debug.sourcepath=${src.folders}:${web.docbase.dir}
    
       # Client URL for Tomcat
       client.url=http://localhost:8084/MyProject
    
       # Client URL for Sun Java System Application Server
       # client.url=http://localhost:8080

    上述属性指定了应用程序将通过共享内存部署到 Tomcat Web Server 中。如果要改用 Sun Java System Application Server,或者要使用套接字连接,则应在 Tomcat 属性前放置注释符号 (#),并为使用 Sun Java System Application Server 的可用连接删除注释符号。您会注意到,缺省情况下应用程序仍将部署到 http://localhost:8084/MyProject,但却包含了 Sun Java System Application Server 的端口号。最后,debug.sourcepath 属性指定了包含要调试的文件的文件夹。在本示例中,我们将使用 Java 文件和 Web 文件进行调试。

    有关这些属性的详细信息,请参见编写目标以调试 Web 应用程序

  3. 在“文件”窗口中,依次展开项目节点、nbproject 文件夹,然后双击 ide-targets.xml。此时,IDE 会为您定义一个完整的调试目标,如下所示。
        <target name="-load-props">
           <property file="nbproject/debug.properties"/>
        </target>
    
        <target name="-check-props">
           <fail unless="jpda.session.name"/>
           <fail unless="jpda.host"/>
           <fail unless="jpda.address"/>
           <fail unless="jpda.transport"/>
           <fail unless="web.docbase.dir"/>
           <fail unless="debug.sourcepath"/>
           <fail unless="client.url"/>
        </target>
    
        <target depends="-load-props, -check-props" name="-init"/>
    
        <target depends="-init" if="netbeans.home" name="debug-nb">
           <nbjpdaconnect address="${jpda.address}" host="${jpda.host}" name="${jpda.session.name}" transport="${jpda.transport}">
                <sourcepath>
    		<path path="${debug.sourcepath}"/>
                </sourcepath>
           </nbjpdaconnect>
           <antcall target="debug-display-browser"/>
        </target>
    
        <target name="debug-display-browser">
           <nbbrowse url="${client.url}"/>
        </target>

应在 debug.properties 文件中完成所需的任何定制,而不能在 debug-nb 目标或支持该定制的目标中完成。

使用调试目标

在使用调试目标前,必须先部署 Web 应用程序。

  1. 在“项目”窗口中,展开 Web 文件夹,双击 hello.jsp 以便在源代码编辑器中打开它。然后右键单击源代码编辑器左侧的灰色条,选择“显示行号”。转至第 25 行,然后单击行号。此时将出现一个红色条。这就是断点。运行调试器时,调试器将在此行停止。在第 29 行设置另一个断点。
  2. 在“运行环境”窗口中,展开“服务器”节点,右键单击捆绑的 Tomcat Web Server 节点,然后选择“启动/停止服务器”。取消选中“在完成时自动关闭此窗口”复选框,然后单击“服务器状态”对话框中的“停止服务器”。

    现在请单击“服务器状态”对话框中的“启动服务器(调试)”。

  3. 在调试模式下启动服务器后,选择“运行”>“调试主项目”(F5)。此时将部署应用程序并将其连接到调试器中。
  4. 在部署的应用程序中,单击 JSP 页链接。在 IDE 中,会看到类似于调试器控制台中出现的内容:
        Attaching to tomcat_shared_memory_id
        User program running
        Breakpoint reached at line 68 in hello.jsp by thread http-8084-Processor23.
        Thread http-8084-Processor23 stopped at hello.jsp:25.
  5. 选择“运行”>“步入”(F7)。会看到调试器步入了文件的下一行(第 26 行):
        User program running
        Thread http-8084-Processor23 stopped at hello.jsp:26.
  6. 使用 F7 键继续逐行执行代码。

调试目标疑难解答

请参见 NetBeans 用户常见问题解答中的调试部分。



后续步骤

有关在 NetBeans IDE 5.5 中开发 Web 应用程序的更多信息,请参见以下资源:

要发送意见和建议、获得支持以及随时了解 NetBeans IDE Java EE 开发功能的最新开发情况,请加入 邮件列表。有关 NetBeans IDE 中即将推出的 Java EE 开发功能的详细信息,请参见 http://j2ee.netbeans.org/

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by