“Web 应用程序的 Mobile 客户端”向导:创建客户端服务器应用程序

通过 NetBeans IDE,可以创建通过中间件 Web 应用程序即可连接到 Web 服务的客户端 MIDlet。

本教程介绍了如何在设备不支持 Java ME 平台的 JSR-172 规范时使用“Web 应用程序的 Mobile 客户端”向导创建与 Web 服务的连接。此向导会生成一个用于计算两个数字的 Servlet,它可以连接到 Web 应用程序,该应用程序中包含 Web 服务客户端,以及用于对指定数字求和的方法。

如果您对 NetBeans Mobility 或 J2EE 不太熟悉,应先阅读 NetBeans Java ME MIDP 快速入门指南,然后再继续学习本教程。

目录

本页上的内容适用于 NetBeans IDE 7.0

要学习本教程,您需要具备下列软件和资源。

软件或资源 要求的版本
带有 Java ME 的 NetBeans Beans 版本 7.0 及更高版本
Java Development Kit (JDK) 版本 6
GlassFish 或 Tomcat 包含在 IDE 的 Java EEAll 安装中

创建 Web 项目

使用“Web 应用程序的 Mobile 客户端”向导之前,必须具有包含 Web 服务客户端的 Web 项目。

让我们 从头开始为 Java Servlet 创建一个新的 Web 应用程序项目。要在 IDE 中创建 Java Web 应用程序,请执行以下操作:

  1. 设置 Web 应用程序项目
  2. 添加业务逻辑
  3. 编译项目

设置 Web 应用程序项目

  1. 选择 "File"(文件)> "New Project"(新建项目)(Ctrl-Shift-N 组合键)。在 "Categories"(类别)下,选择 "Java Web"。在 "Projects"(项目)下选择 "Web Application"(Web 应用程序),然后单击 "Next"(下一步)。
  2. 在 "Project Name"(项目名称)字段中输入 WebApplication。将 "Project Location"(项目位置)指定为计算机上的任意目录。在本教程中,将此目录称为 NetBeansProjects
  3. (可选)选中 "Use Dedicated Folder for Storing Libraries"(使用专用文件夹存储库)复选框,并指定库文件夹的位置。
  4. 取消选中 "Set as Main Project"(设置为主项目)复选框,然后单击 "Next"(下一步)。
  5. 在 "Server and Settings"(服务器和设置)面板中,将 "GlassFish Server 3.1" 保留为稍后要将 Mobile 应用程序部署到的服务器,并将 "J2EE 1.4" 保留为要用于应用程序的版本。
  6. 将 "Set Source Level to 1.4"(将源级别设置为 1.4)保留为选中状态。

    注意:服务器上的上下文路径将变为 /WebApplication(基于您在上一步中为项目指定的名称)。

  7. 单击 "Next"(下一步)。在 "Frameworks"(框架)面板中,单击 "Finish"(完成)以创建项目。
    IDE 将创建 NetBeansProjects/WebApplication 项目文件夹。此项目文件夹包含所有源代码和项目 meta 数据,例如项目的 Ant 生成脚本。WebApplication 项目将会在 IDE 中打开。在主窗口的源代码编辑器中,将打开欢迎页 index.jsp。

WebApplication 项目和 index.jsp

添加业务逻辑

要在 Web 项目中使用公共方法创建 Java 类,以表示应用程序的业务逻辑,请完成以下步骤:

  1. 在 "Projects"(项目)窗口中,右键单击 "Source Packages"(源包)节点,然后选择 "New"(新建)> "Java Package"(Java 包)。在 "Package Name"(包名)文本框中输入 MyPackage,然后单击 "Finish"(完成)。
  2. 右键单击创建的 MyPackage 节点,然后选择 "New"(新建)> "Java Class"(Java 类)。在 "Class Name"(类名)文本框中输入 Calculator,然后单击 "Finish"(完成)。
  3. 在 "Source Editor"(源代码编辑器)窗口中打开的 Calculator.java 文件内,插入以下方法:
     public int calcSum(int a, int b) {
            return a + b;
        } 
  4. 按 Ctrl+S 组合键以保存所做的编辑。

生成项目

在 "Projects"(项目)窗口中,右键单击 WebApplication 项目节点,然后选择 "Build"(生成)(F11)。
此时,用于对数字求和的 Web 应用程序就创建好了。

注意:缺省情况下,项目是在启用 "Compile on Save"(在保存时编译)功能的情况下生成的,因此不需要先对代码进行编译。

Calculator.java

创建 Mobile 项目

通过 IDE 可以创建客户端 MIDlet 以连接到刚才创建的 Web 应用程序,同时为其提供两个数字并显示它们的和。

要创建 Java ME 客户端应用程序,请执行以下操作:

  1. 创建项目
  2. 在项目中添加包和 Visual MIDlet
  3. 在项目中添加组件
  4. 在项目中添加命令
  5. 连接组件以创建应用程序流
  6. “Web 应用程序的 Java ME 客户端”向导

创建项目

NetBeans IDE 提供一个使您可以快速创建 MIDP 项目的向导。

  1. 选择 "File"(文件)> "New Project"(新建项目)(Ctrl-Shift-N 组合键)。在 "Categories"(类别)下,选择 "Java ME"。在 "Projects"(项目)下,选择 "Mobile Application"(Mobile 应用程序),然后单击 "Next"(下一步)。
  2. 在 "Project Name"(项目名称)字段中输入 MobileApplication。将Project Location(项目位置)更改为系统中的某个目录。在本教程中,我们将此目录称为 NetBeansProjects
  3. 取消选中 "Create Hello MIDlet"(创建 Hello MIDlet)复选框(如果缺省为选中状态)。单击 "Next"(下一步)。
  4. 选择 "Java (TM) Platform Micro Edition SDK 3.0" 作为仿真器平台。单击 "Next"(下一步),然后单击 "Finish"(完成)。
    IDE 将创建 NetBeansProjects/MobileApplication 项目文件夹。
    此项目文件夹包含所有源代码和项目 meta 数据,例如项目的 Ant 脚本。

    已创建 MobileApplication 项目

在项目中添加包和 Visual MIDlet

  1. 在 "Projects"(项目)窗口中选择 MobileApplication 项目,然后选择 "File"(文件)> "New File"(新建文件)(Ctrl-N 组合键)。在 "Categories"(类别)下,选择 "MIDP"。在 "File Types"(文件类型)下,选择 "Visual MIDlet"。单击 "Next"(下一步)。
  2. 在 "MIDlet Name"(MIDlet 名称)和 "MIDP Class Name"(MIDP 类名)字段中输入 Calculator,然后在 "Package"(包)文本字段中键入 CalculatorPackage。单击 "Finish"(完成)。
    应用程序显示在可视 Mobile 设计器的 "Flow"(流)设计窗口中。

    已添加包和 Visual MIDlet

在项目中添加组件

  1. 在 "Flow"(流)视图中,从组件面板的 "Displayables"(可显示项)类别中拖放以下组件:
    • Wait Screen(等待屏幕)
    • 窗体 (x2)
    • Alert(警报)

      已添加组件

  2. 单击 "Screen"(屏幕)以切换至 "Screen"(屏幕)视图,然后在 "Analyzer"(分析器)按钮右侧的下拉列表中选择 form
  3. 右键单击 form 组件,然后从弹出式菜单中选择 "New/Add"(新建/添加)> "Text Field"(文本字段)。
  4. 重复上面的步骤 3,以便将另一个 "Text Field"(文本字段)添加到窗体中。
  5. 选择 textField 组件,然后在 "Properties"(属性)窗口(位于组件面板的下方)中输入 A 作为 "Label"(标签)值。
  6. 右键单击 A 组件,然后从弹出式菜单中选择 "Rename"(重命名)。
  7. 在 "Rename"(重命名)对话框的 "New Name"(新名称)字段中输入 fieldA,然后单击 "OK"(确定)。
  8. 选择 textField1 组件,然后在 "Properties"(属性)窗口中输入 B 作为 "Label"(标签)值。
  9. 右键单击 B 组件,然后从弹出式菜单中选择 "Rename"(重命名)。
  10. 在 "Rename"(重命名)对话框的 "New Name"(新名称)字段中输入 fieldB,然后单击 "OK"(确定)。
    重命名的字段将代表 calcSum 方法的参数。

    字段 A 和字段 B

  11. 在 "Analyzer"(分析器)按钮右侧的下拉列表中选择 form1
  12. 右键单击 form1 组件,然后从弹出式菜单中选择 "New/Add"(新建/添加)> "Text Field"(文本字段)。
  13. 选择 textField 组件,然后在 "Properties"(属性)窗口中输入 Result 作为 "Label"(标签)值。
  14. 右键单击 Result 组件,然后从弹出式菜单中选择 "Rename"(重命名)。
  15. 在 "Rename"(重命名)对话框的 "New Name"(新名称)字段中输入 resultField,然后单击 "OK"(确定)。
    重命名的字段用于显示 calcSum 方法的输出。

    "Result"(结果)字段

  16. 在 "Analyzer"(分析器)按钮右侧的下拉列表中选择 alert
  17. 在 "Properties"(属性)窗口中,将 "Title"(标题)属性更改为 Alert,并将 "String"(字符串)属性更改为 Error while getting results from the web application
    如果 Web 应用程序不返回任何结果,则会显示警报。

    "Alert"(警报)字段

在项目中添加命令

  1. 在 "Screen"(屏幕)视图中,在 "Device Screen"(设备屏幕)内右键单击,然后从弹出式菜单中选择 "New/Add"(新建/添加)> "Exit Command"(退出命令)(如果已选中 form1)。

    Form1:已添加 exitCommand

  2. 在 "Screen"(屏幕)视图中,从 "Analyzer"(分析器)按钮右侧的下拉列表中选择 form
  3. 在 "Device Screen"(设备屏幕)内右键单击,然后从弹出式菜单中选择 "New/Add"(新建/添加)> "Ok Command"(确定命令)。
  4. 重复上面的步骤 4,以便通过弹出式菜单添加 "Cancel Command"(取消命令)。

    窗体:已添加 okCommand 和 cancelCommand

  5. 按 Ctrl+S 组合键以保存所做的编辑。

连接组件以创建应用程序流

在 "Flow"(流)视图中,单击 "Mobile Device"(移动设备)上的 "Started"(已启动)文本,然后将其拖至 form 组件中。采用相同的方法,按照下图所示连接各个组件。

应用程序流

“Web 应用程序的 Java ME 客户端”向导

我们将使用“Web 应用程序的 Java ME 客户端”向导在 Mobile 项目内创建 Mobile 客户端并选择 calcSum 方法。

  1. 展开 MobileApplication 并右键单击 "Source Packages"(源包),然后选择 "New"(新建)> "Java ME Client to Web Application"(Web 应用程序的 Java ME 客户端)。
  2. 在 "Servlet and Client Type"(Servlet 和客户端类型)面板中,选择 MIDlet 与之进行交互的 Web 应用程序的类型:输入 WebToMobileServlet 作为 Servlet 名称,并确保选中 "Methods in Web Application"(Web 应用程序中的方法)选项(因为 Mobile 客户端将直接连接到该 Web 应用程序),然后单击 "Next"(下一步)。

    向导

  3. 在 "Methods In Web Project"(Web 项目中的方法)面板中,选中 "int calcSum (int a, int b)",然后单击 "Next"(下一步)。
  4. 在 "Client Options"(客户端选项)面板中,将生成的客户端的名称和包保留原样,并确保选中 "Generate stubs"(生成桩模块)和 "Allow floating point"(允许浮点)选项,然后单击 "Finish"(完成)。
    此时将在 Java ME 项目下方生成 Java ME 客户端和映射文件。
    同时,将在 Web 项目下方生成 Servlet 和相关类。

    已生成 Java ME 客户端

在 Java ME 客户端中添加源代码

  1. 单击 "Calculator.java" 标签。
  2. 在 "Screen"(屏幕)视图中,从 "Analyzer"(分析器)按钮右侧的下拉列表中选择 waitScreen
  3. 右键单击 "Resources"(资源)下方的 "task [SimpleCancellableTask]",然后在弹出式菜单中选择 "Go to Source"(转至源)。
  4. 在源代码编辑器中,找到 // write task-execution user code here 部分并将其替换为以下代码:
        WebToMobileClient wc = new WebToMobileClient();
        int a = Integer.valueOf(getFieldA().getString()).intValue();
        int b = Integer.valueOf(getFieldB().getString()).intValue();
        int result = wc.calcSum(a, b);
        System.out.println(result);
        getResultField().setString(String.valueOf(result));
  5. 按 Ctrl+S 组合键以保存所做的编辑。

部署 Web 项目

要部署 Web 应用程序,请在 "Projects"(项目)窗口中,右键单击 "WebApplication" 节点,然后从弹出式菜单中选择 "Deploy"(部署)。
此时将显示 "Output"(输出)窗口,如下所示:

已部署 WebApplication

返回页首

运行客户端项目

要运行 Mobile 客户端应用程序,请选择 "Run"(运行)> "Run Main Project"(运行主项目),或按 F6 键以运行主项目。

注意:在运行客户端应用程序之前,请确保服务器端应用程序已部署且正在运行。

当 MobileApplication 运行时,将会打开一个仿真器窗口,显示在缺省设备仿真器中运行的应用程序。

仿真器中的客户端应用程序

检查功能

  1. 在 "Emulator"(仿真器)窗口中,在 "A" 字段中输入任意数字,并通过单击中心按钮旁的向下箭头键切换至 "B" 字段,然后在 "B" 字段中输入另外一个数字。

    设置 "A" 和 "B"

  2. 单击 "Menu" 下方的按钮,并在弹出式菜单中选择 "OK"(确定),然后单击 "Emulator"(仿真器)上的中心按钮进行确认。
    在 WebApplication 对您输入的数字进行求和之后,将会在 form1 中显示结果。

    已计算结果

    注意:要查看该教程的最终结果,请下载 MobileCientToWebApplicationSample.zip

返回页首


另请参见

返回页首

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo