Linux 已被证明是一个能够用作服务器的操作系统。然而,许多开发人员仍然没有意识到 Linux 还是一个出色的开发环境。各大软件供应商很快推出了针对 Linux 的开发环境,如今您可找到许多健壮的编辑器,它们能够帮助您开发 Linux 上的复杂应用程序。此外,各 Linux 操作系统供应商(Red Hat,SuSE,等等)已经着手开发在成熟性和易用性方面和 Windows 几乎相同的 GUI。
您正在考虑转为使用 Linux 作为开发环境吗?您是正在寻找应用程序开发支持工具的 Linux 专家吗?您正在开发 Web 服务或构建访问 Web 服务的应用程序,或者同时开发这两者吗?如果您可归入上述任何类别,那么本文就是为您准备的。
本文中用于生成和测试 Web 服务的步骤基于 Red Hat Linux 8.0(受支持的其他发行套件包括 Red Hat 7.2 和 SuSe 7.2 以及 8.1)。贯穿本文,术语 Application Developer 指的是 WebSphere Studio Application Developer。 您也可以使用 WebSphere Studio Site Developer 5.0,因为本文中的示例银行应用程序没有使用 Application Developer 特有的任何附加特性。
Web 服务回顾
在开始开发 Web 服务之前,让我们花点时间复习一下 Web 服务是什么,以及它是如何工作的。我们将回顾 Web 服务后面的体系结构、协议和术语,以及这个特定的应用程序示例。
体系结构
Web 服务由 提供者(provider)创建,在 注册库(registry)中公开注册,供 使用者(consumer)使用(或消费)。Web 服务并不是新的应用程序,而是包装到 Web 服务代码中的现有应用程序。明确地说,Web 服务描述语言(Web Services Description Language,WSDL)这种基于 XML 的语言将用来描述该应用程序。这个描述就是在注册库中所注册的内容。使用者浏览 Internet 上的注册库,查找他或她需要的 Web 服务。典型的使用者拥有一个应用程序,并寻找 Web 服务所提供的一些附加功能。为了访问 Web 服务,使用者将他的应用程序绑定到提供 Web 服务的服务器。绑定(binding)指定了用来发送和接收数据和指令的传输协议。最常用的传输协议是简单对象访问协议(Simple Object Access Protocol,SOAP)。典型 Web 服务所使用的结构和协议如图 1 所示。
让我们更密切地观察一下用来发送和接收指令和数据的文档的 WSDL 结构。这里的 结构(structure)是指 IBM 选择用于在 WSDL 文档中对 WSDL 文件集进行分组的方式。最低层次的结构是服务端口,它指定包含服务的服务器位于何处。在下一个层次上,绑定指定应用程序应该如何与服务交互,也就是应该使用哪种传输协议。最后,抽象服务接口定义定义了能够使用的操作,以及输入和输出数据的类型。操作是方法的 XML 名称。输入和输出表示使用者和提供者之间来回传递的数据。输入和输出被组合成对,从而形成消息。
注意这种文件分组方式提供了可移植性和灵活性。例如,如果改变了应用服务器的位置,您可以更改包含服务端口的文件,而不必更新绑定或抽象服务接口定义。
运行时
Web 服务在运行时是如何工作的?使用者和提供者通过 消息 交换数据,您可以将消息看作是一个信封。该信封内包含的是部件。部件 是字段及其数据类型的 XML 名称。尽管它们交换包含数据的消息,但是使用者和提供者都不知道对方的实现。隐藏使用者和提供者的实现正是 Web 服务的吸引人之处:使用不同语言来编写代码的应用程序能够通过 XML 进行互操作。
示例应用程序
假设有一个用 JavaTM 代码编写的银行应用程序(您可以在下面的 参考资料 小节中下载该代码),而我们想把它转换为一个 Web 服务。这个应用程序允许客户存钱和取钱。我们决定把这个银行应用程序置于在线,让客户通过 Internet 存钱和取钱。图 4 显示了我们希望这个应用程序在 Web 上正常运行时的样子。
左下角就是我们的应用程序(Account.java)。右下角是我们希望 Application Developer 为我们生成的这个应用程序的 WSDL 描述。 换句话说,它就是我们想要使用 Application Developer 工具来创建的 Web 服务。用 Web 服务术语来说,它就是一个提供者。右上角的消费应用程序不会直接与该 Java 应用程序交互。相反,它将与提供者交互。为展示 Application Developer 的系列工具,我们还将构建一个使用我们的 Web 服务的应用程序。
注意这个应用程序并不直接访问我们的 Web 服务:它通过左上角的代理(AccountProxy.java)来与该 Web 服务交互。如果熟悉代理设计模式,您将知道 代理(proxy)是用来代表另一个对象的。对于消费应用程序来说,我们的 Web 服务是相同客户机器上的一个 Java 应用程序。使用者与它交互,而代理则处理与运行在服务器上的 Web 服务的交互。Application Developer 工具还会为我们创建代理。
创建项目和测试服务器
在本节中,我们将启动 Application Developer,为这个应用程序创建项目,同时创建一个测试服务器。
- 如果您刚接触 WebSphere Studio Application Developer 或 Site Developer,可能需要首先回顾文章 "Hello, World" in 90 seconds with WebSphere Studio Site Developer V5,该文章介绍了这个产品及其用户界面。
- 在 Linux 上运行 Application Developer,然后转到 J2EE 透视图。
Linux 新手请注意:为了在 Linux 上运行 IBM 产品,您需要知道该产品位于何处。IBM 将其所有产品放在 /opt 文件夹中。启动您的主文件夹,然后在“位置” 字段中输入
/opt/IBM/WebSphereStudio。再双击 wsappdev50 来运行该产品。
创建项目
由于 Application Developer 中存在大量的功能,它们被便利地分组为称作 透视图(perspectives)的可管理块。顾名思义,透视图是基于您想要做的事情的相关功能集合。一个常见的透视图就是 Web 透视图,它用于开发基于 Java 的 Web 应用程序。我们将使用它来建立项目和完成我们的开发工作。联机帮助提供了关于如何创建项目的逐步指导,因此我将重点介绍必须为本项目所做的特定事情。
- 单击 Open a Perspective 图标(即 J2EE Navigator 左侧具有窗格的小页面),并选择 Web(即那个小地球仪图标),以切换到 Web 透视图。Web 透视图图标将被添加到 J2EE Navigator 左侧称为 shortcut bar(快捷栏)的一列中。
- 从 File 菜单上选择 Web Project,然后使用 Create a Web Project 向导来建立项目。对于项目名称,请使用
HappyFaceBank。在下一个页面上,请使用HappyFaceBankEAR作为 Enterprise 应用程序项目的名称。按照惯例,许多用户给项目的名称添加 EAR,以提醒这是一个项目容器,它将在完成和测试后的 Web 服务被部署到应用服务器之后变成 Enterprise Archive (或 EAR)文件。单击 Finish 创建项目。现在您应该在 J2EE Navigator 视图中看到了这个新项目,如图 5 所示。 - 对于这个示例应用程序以及许多 Web 服务应用程序,您将需要把著名的 Xerces JAR 放在生成(build)路径中,以帮助进行 XML 解析(要了解关于 Xerces XML 解析器的更多信息,请参阅下面的 参考资料)。Application Developer 已经在该路径中添加了可供您使用的 JAR 集合。要添加您自己的生成路径,请右键单击 HappyFaceBank 项目,然后从弹出菜单上选择 Properties。再选择 Java Build Path。在 Libraries 部分中,请选择 Add External JARs。需要添加的 JAR 是 xercesImpl.jar。您将会从以下路径中找到它:
/opt/IBM/WebSphereStudio/eclipse/plugins/org.apache.xerces_4.0.7Linux 新手请注意:Linux 系统通常是为三键鼠标而设置的。请使用鼠标中键把需要的文件选择到您想要包括的字段中。首先选择需要的文件,然后按住鼠标中键,再将该文件拖拽到相应字段中。如果没有三键鼠标,系统可能已经设置了模拟三键鼠标的功能,即使用 辅助键(chording)或同时按下两个鼠标键。
创建测试服务器
最后您需要测试即将要开发的 Web 服务。Web 服务的测试是通过在 Application Developer 中创建一个测试服务器,并将它与您的项目相关联来实现的。测试服务器模拟开发环境中的真实 WebSphere Application Server。创建测试服务器的时机是在建立项目之后。与创建项目一样,联机帮助提供了关于如何建立测试服务器的细节。下面是用于这个示例测试服务器的特有细节。
- 请切换到 Server 透视图。还记得如何这样做吗?要切换到 Server 透视图,请单击 Open a Perspective 图标(即 J2EE Navigator 左侧具有窗格的小页面),并选择 Server(即那个小系统单元图标)。从 File 菜单上选择 New > Server and Server Configuration。在向导中输入
BankServer作为服务器名称,在 server type 字段中选择 WebSphere version 5.0> 下面的 Test Environment。在其余的各页面上,请选择默认设置。
- 一旦创建了测试服务器,请在 Server Configuration 视图中右键单击它。从弹出菜单上选择 Add > HappyFaceBankEAR。这样该项目就添加到了测试服务器中。
由于我们已将这个测试服务器用于其他一些项目,因此在图 6 中,名为 BankServer 的测试服务器有三个项目与它关联,其中包括我们的 HappyFaceBankEAR 项目。
生成 Web 服务
在本节中,我们将下载和导入示例代码,并在它的基础上创建一个 Web 服务。然后使用 Application Developer 中的测试工具以及刚才创建的测试服务器来测试我们的 Web 服务接口。
导入 Java 文件和生成 Web 服务
现在已经定义了项目,并且已经有了用来测试它的测试服务器,下面让我们开始构建 Web 服务。这是说的“构建 Web 服务”指的是生成 Web 服务。Application Developer 中的工具将会完成大多数的工作,如果没有这些工具,您将不得不自己完成这些工作。换句话说,Application Developer 将生成 WSDL 代码,而这是您通常需要手工编写的代码。当您导入原始的应用程序时,代码生成过程就开始了(记住,Web 服务是从现有应用程序开始的)。
- 请通过下面的 参考资料 小节下载源代码,并将它保存在主目录中。然后使用
unzip命令来解压缩该 zip 文件中的两个文件。
- 如果刚刚创建了测试服务器,那么您仍然在 Server 透视图中,因此要确保在继续之前首先切换到 Application Developer 中的 Web 透视图。当您进入 Web 透视图时,请选择 J2EE Navigator 附签。然后展开 HappyFaceBank 并右键单击 Java source。从弹出菜单上选择 Import,然后遵照向导的指示执行操作。至于导入源代码,请选择 File system。需要导入的文件是
Account.java,它在您的主目录中。当您导入它时,Application Developer 将把它放进一个名为default package的包中。
清单 1. 表示银行帐户的 Java bean,客户可对该帐户进行资金存取
|
- 选择并右键单击 HappyFaceBank。从弹出菜单上选择 New > Other。
- 当 Select 窗口打开时,请选择 Web Services > Web Service。您将进入 Web Service 向导。这里需要的 Web 服务类型是 Java bean Web Service,您可以从下拉列表中选择它。
- 确保选中“Start Web service in Web project”。您还需要选中“Generate a proxy”,而且这里需要的 Client proxy type 是 “Java proxy”。还要选中 “Test the generated proxy”,因为这个选项允许您在编写任何接口代码之前检验该代理,这样做总是一个好主意。
Linux 新手请注意:请通过单击按钮来选中选项。
- 单击 Next,您将进入 deployment settings 页面。请接受默认设置。后面的页面是 Java Bean Selection 页面。请单击 Bean 字段旁边的 Browse files。在随后打开的对话框中,请展开 Java Source 并选择
Account.java。
- 继续到下一个页面,您将在其中看到一个 XML 文件的列表,也就是将要生成的 XML 文件。仔细观察一下可以看出,这些文件被划分为一个服务文件、一个绑定文件和一个接口文件。这些文件映射到前面在 体系结构 中讨论的结构。
- 请接受默认设置并转到下一个页面。这个页面列出您将要在 Web 服务中公开的方法。Application Developer 给您提供了限制用户能够访问的方法的机会。对于这个示例 Web 服务,我们将允许用户访问所有方法。请继续到下一个页面。
- 在 Proxy Generation 页面中,请接受 SOAP 绑定。注意代理生成过程将创建一个名为 HappyFaceBankClient 的新项目,您将在后面看到该项目。Application Developer 会自动创建这个项目,因为它假设该代理将与应用程序一起运行在客户机上,而不是运行在服务器上。请继续到 Web Service Test 页面。
- 确保选中“Test the generated proxy”,并且在 Test Facility 字段中,确保选中 Web service sample JSPs。所列出的方法就是您将在后面测试的方法。Application Developer 通过检查您添加到该 Web 服务的
Account.javabean 来发现那些方法。本质上,那些方法允许用户从 Happy Face 银行存钱和取钱以及获取余额信息。方法
getFormattedBalance获取余额信息,这样给它命名是为了提醒您:当您准备在 Web 上显示数据(比如款项)时需要格式化数据。记住款项通常具有小数部分,因此我们将在内部对它使用 double 数据类型,虽然真实的银行不会这样做,因为在对小数和二进制进行来回转换时会产生舍入错误。显示在 Web 上的数据必须转换为 String 类型。您还将看到用于获取和设置边界点的方法。这些方法将使用代理来代表应用程序查找 Web 服务的位置。 - 单击 Next。您还会获得在通用描述、发现和集成(Universal Description, Discovery and Integration,UDDI)注册库中测试 Web 服务的机会。目前我们不打算这样做。单击 Finish,这样就生成了该 Web 服务。生成代码以及在 Web 浏览器中执行操作以进行测试将会花几分钟的时间。
Web 服务初始测试
由于我们选中了“Test the generated proxy”,因此 Application Developer 生成了一个 TestClient.jsp 文件,并在内置的浏览器中运行它。TestClient 允许您检验刚才创建的 Web 服务中的方法。它通过代理访问那些方法,这个代理也是我们刚才创建的。
为了在这个基本的用户界面中测试 Web 服务方法,如果您已创建了一个用户界面,则应该考虑将要调用的方法的顺序。
- 请选择 getFormattedBalance 并单击 Invoke 按钮。 Result 部分应该显示
00.00。
- 选择 deposit,在 amount 字段中输入一个数字,然后再次单击 Invoke。返回 getFormattedBalance 并单击 Invoke。您在 deposit 中添加的金额现在应该显示在 Result 部分中。类似地,您也可以取出资金。
不需要测试 setEndPoint 和 getEndPoint。虽然它们将对用户隐藏,但是它们对于使用该服务的应用程序起着重要的作用:它们查找该 Web 服务的位置。
- 关闭浏览器。停止服务器。
- 在右下角的 Console 视图中,请选择 Servers 附签。选择并右键单击 BankServer。从弹出菜单上选择 Stop。
注意 HappyFaceBankClient 项目已被添加到了 J2EE Navigator 视图中。代理
AccountProxy.java已添加到了它的 Java Source 文件夹中。如果您浏览它,将会看到那些方法已被设置为同步的。当一个声明为同步的方法在某个对象中运行时,该对象将被锁定,以便其他同步的方法能同时在该对象中运行。这对于存、取款的服务来说绝对是一个好主意。用于测试服务的
TestClient.jsp已添加到了 Web Content 文件夹中。
生成用户界面
一切都工作正常。 这个 Web 服务能够正常工作,不过如果它有一个用户界面将会更好。这就是下一步要使用 Application Developer 中的一个便利工具(HTML 编辑器)来做的事情。
- 如果当前不是 Web 透视图,请单击快捷栏上的小地球仪图标(位于工作台的左上角)切换到 Web 透视图。展开 HappyFaceBankClient。选择并右键单击 Web Content。从弹出菜单上选择 New > HTML/XHTML File。在 File name 字段中,请输入
CustomerInput。单击 Finish。注意有一些附签允许您查看不同的视图。请保持在 Design 视图中,这是一个所见即所得(WYSIWYG)的视图。添加标题:
Happy Face Bank。标题是通过从菜单栏选择 Insert > Paragraph > Heading 2 来添加的。还可以右键单击并从弹出菜单中查找相同的菜单项。 - 删除您在标题下面看到的默认句子(即
Place CustomerInput.html's content here)。添加图片。 添加图片与添加标题类似。这一次,请使用 Insert > Image File > From File。要添加的文件是 HappyFaceLogo.gif,它位于您的主目录中。记住使用鼠标中键将文件名拖拽到 Selection entry 字段中。在图片下面,请添加下面的句子:Open 24 hours a day!
- 现在让我们添加一些单选按钮和字段以获取用户数据。同样,请使用插入功能(Insert 菜单命令)。这一次要使用的命令组合是 Insert > Form and Input Fields > Form。这样就添加了一个具有虚线的表单。您将在这个表单中添加按钮和文本字段,以便向该 Web 服务发送数据。首先这个表单需要一个目的地。请右键单击该表单。从弹出菜单上选择 Attributes。如果显示属性的窗格非常小,您可以双击其标题栏来展开它。在 Attributes 对话框中,请在 Action 字段中输入以下 URL:
http://localhost:9080/HappyFaceBankClient/BankResponse.jsp
您将在下一节中生成 BankResponse JSP。在 Method 字段中,请选择 Post。通过单击右上角的 X 来关闭 Attributes 对话框。
- 在表单内添加字段,以便在存钱和取钱之间做出选择,以及指定存取金额。确保光标在表单(即具有虚线的框)内。从菜单栏选择 Insert > Form and Input Fields > Radio Button。这样就会打开 Insert Radio Button 对话框。在 Group name 字段中,请输入
CustomerRequest。在 Value 字段中,请输入DepositMoney。在 Initial state 字段中,请单击 Selected。单击 OK。这样就添加了单选按钮。键入Deposit money。按回车键添加一个新行,但是要保持在表单内,该表单由虚线指明。
- 添加另一个单选按钮。在 Group name 字段中,请使用相同的名称
CustomerRequest,这个名称将出现在下拉列表中。在 Value 字段中,请输入WithdrawMoney。在 Initial state 字段中,请选择 Read-only。单击 OK。这样就添加了单选按钮。在这个单选按钮旁边键入Withdraw money。按回车键添加一个新行,但是要保持在表单内。
- 添加文本
Amount:。在该文本旁边插入一个文本字段。从菜单栏选择 Insert > Form and Input Fields > Text Field。这样就会打开 Insert Text Field 对话框。在 Name 字段中,请输入Amount。在 Initial Value 字段中,请输入0.00。单击 OK。 这样就把文本字段添加到了表单上。按回车键添加一个新行,但是要保持在表单内。
- 添加 Submit 按钮。从菜单栏选择 Insert > Form and Input Fields > Submit Button。这样就会打开 Insert Submit Button 对话框。在 Name 字段和 Label 字段中,请输入
Submit。在 Initial state 字段中,请选择 Read-only 作为状态。单击 OK。这样就添加了 Submit 按钮。
- 以相同的方式添加一个 Reset 按钮,不过这次要在 Label 字段中使用
Reset。没有用于重设按钮的 Name 字段。在选择 Design 附签的情况下,您的用户界面看起来应该类似如下。想知道代码看起来像什么样吗?只需选择 Source 附签即可。
- 从菜单栏上选择 File > Save CustomerInput.html 以保存该文件。您也可以通过按 Ctrl-S 来保存文件。然后关闭文件。
添加 JSP
现在已经完成了用户界面的第一部分,即用户将在其中输入数据的那一部分。现在您需要通过一个 JSP 页面向用户返回信息。这个 JSP 将利用代理,把存款和取款传递给该代理,该代理反过来又将存款和取款作为一个操作发送给 Web 服务。
- 如果没有选择 J2EE Navigator 附签的话,请选择该附签。如果没有展开 HappyFaceBankClient 的话,请展开它。再次选择并右键单击 Web Content。从弹出菜单上选择 New > JSP File。这样将打开 New JSP File 窗口。在 File name 字段中,请输入
BankResponse。记住我们在 URL 中使用 BankResponse.jsp 作为前面的表单中的 action 属性。单击 Finish。这样就创建了该 JSP。
- 添加标题。还记得如何这样做吗?从菜单栏选择 Insert > Paragraph > Heading 2。输入
Happy Face Bank。删除默认句子:Place BankResponse.jsp’s content here。
- 添加图片。这与您在前面导入的图片相同。从菜单栏选择 Insert > Image File > From File。在 file section 对话框中,确保 Filter 字段类似:
/home/student/IBM/wsappdev/workspace/HappyFaceBankClient/Web Content/*
我在此路径中的 userid 是student。您的 userid 应该不一样。单击 Filter。如果这个路径还没有出现在 Filter 字段中的话,现在它就被添加到了该字段中。
- 在 Files 窗格中,请选择 HappyFaceLogo.gif。正如您在前面已经了解到的,对于 Linux,可单击 HappyFaceLogo.gif 并按住鼠标中键,然后将光标拖拽到 Selection 字段,然后释放鼠标键。这时您应该看到该图像的完整路径。单击 OK。这样就添加了该图片。
- 将光标移到下一行,然后在图片下面添加一个句子:
Thanks for banking with us today!
- 插入代理 Java bean,它代表服务器上的 Web 服务所提供的方法:存钱、取钱和获得余额信息。将光标移到下一行。从菜单栏选择 JSP > Insert Bean。这样将打开 Insert JSP Bean 页面。在 ID 字段中,请输入:
balanceUpdate。单击 Class 字段旁边的 Browse 按钮。这样就打开了 Class Selection 对话框。在 Choose a class 字段中,请输入AccountProxy。AccountProxy 类在 Matching types 窗格中列出。选择 AccountProxy 类并单击 OK。限定的类名称(包名称和类名称)将被输入 Class 字段中:proxy.soap.AccountProxy
- 对于 Scope 字段,请从下拉列表中选择 Session。Session 可能不会出现在该字段中。我发现该字段有时不会得到刷新。如果遇到这种情况,请返回该下拉列表,并再次选择 Session 以使它出现在 Scope 字段中。很快您将要检查它是否被添加到了代码中。范围(Scope)定义了连接的生存期。您将在会话的生存期中需要该连接。请把 Type 字段保留为空。单击 OK。这样就把 Java bean 添加到了 JSP 中。
- 单击 Source 附签。确保 jsp:useBean 属性包括
scope="session"。这一行应该高亮显示,并放置在源文件底部附近紧邻 </BODY> 上面的位置。保存这个 JSP。从菜单栏选择 File > Save BankResponse.jsp。现在不要关闭该 JSP,因为我们还必须添加一个 scriptlet。
添加 scriplet
如果您确实运气好的话,JSP 将会从您引入 JSP 的 bean 中找到它需要的所有方法。不过您通常不会有那么好的运气。您通常需要在 JSP 中添加几行代码,以包含一些不属于该 bean 的逻辑。scriplet 允许您添加那些额外的代码行。在这个例子中,我们需要添加一个 scriplet 来解析从用户那里返回的值,该 scriplet 反过来又调用代理中的适当方法,以存钱或取钱。
- 请选择 Design 附签。从菜单栏选择 JSP > Insert Scriplet。单击 Source 附签,并检查 scriplet 开始(
<%)和结束(%>)标签。将这两个标签放在单独的行上,然后在它们之间添加下面的代码行。您可以从这里复制和粘贴该代码。<% String decision = request.getParameter("CustomerRequest"); double amount = Double.parseDouble(request.getParameter("Amount")); String newBalance = ""; if ( decision.equals( "DepositMoney" )) { balanceUpdate.deposit( amount ); } else if ( decision.equals( "WithdrawMoney" )) { balanceUpdate.withdraw( amount ); } else { System.out.println( "Unknown input: " + decision ); } newBalance = balanceUpdate.getFormattedBalance(); %> - 保存这个 JSP。从菜单栏选择 File > Save BankResponse.jsp。
- 确保您的 Java 代码中没有错误。X 表示代码中有错误。如果确实有错误,请修复它们并再次保存文件。保存文件的过程将编译 Java 代码。
- 请单击 Design 附签。开始一个新行并添加如下文本:
Your new balance:在该文本旁边,请添加另一段代码来返回帐户余额,并使它对用户可见。从菜单栏选择 JSP > Insert Expression。单击 Source 附签。注意表达式的开始标签(
<%=)和 scriplet 的开始标签(<%)之间的细微区别。在表达式标签之间输入以下变量:<%= newBalance %>。也可以在设计视图中右键单击 expression 并选择 Attributes 来输入这个表达式。保存这个 JSP。 - 确保您的 Java 代码中没有错误。X 表示代码中有错误。如果确实有错误,请修复它们并再次保存文件。单击 Design 附签,这时该 JSP 应该类似图 12。
- 关闭 BankResponse.jsp 和其他任何打开的文件。
运行应用程序
让我们使用前面建立的测试环境来测试所有这些内容。
- 确保当前仍然处在 Web 透视图中。如果不是,请单击快捷栏上的小地球仪图标。选择 J2EE Navigator 附签。展开 HappyFaceBankClient。展开 Web Content。选择并右键单击 CustomerInput.html。从弹出菜单上选择 Run on Server。这样将打开 Server selection 窗口。服务器应该默认设置为 Use an existing server。选定的服务器应该是 BankServer。单击 Finish。 Console 视图将在测试服务器启动时显示消息。请使用您创建的这个界面,存入 8200.75 美元。
- 该 JSP 将进行编译(记住,JSP 在运行时编译,然后暂时驻留在当前会话的内存中)。金额将由银行使用 Web 服务来返回。
- 使用后退按钮返回输入页面,对 Happy Face Bank 进行存钱和取钱。由于该 JSP 现在以编译过的形式存在于内存中,因此它将执行得更快。
结束语
我们已经完成了生成一个 Web 服务的典型步骤。如果曾经在 Windows 上使用过 WebSphere Studio 工具,您可以看到它们在 Linux 上的行为和它们在 Windows 上是一样的。我已把您的注意力吸引到一些细小的区别上,特别是对于 Linux 新手,不过即使仅具有有限 Linux 经验的人,也应该能够开始在 Linux 上使用 Application Developer 或 Site Developer 来开发 Web 服务。我鼓励大家这样做,因为就像它是一个有效的应用程序运行环境一样,Linux 同样也是一个有效的应用程序开发环境。
- 下载本文中讨论过的示例 Java 代码的 源代码 和 Happy Face Bank 图像文件。
- 在 为您的 Linux 应用加油提速 获得 WebSphere Studio Site Developer 的试用版并查找更多参考资料。
- 欲了解关于 Xerces XML 解析器 的背景信息,请在 xml.apache.org 上检查 Apache XML 项目。
- 了解关于 简单对象访问协议(Simple Object Access Protocol,SOAP) 规范的更多信息。
- 阅读关于 Web 服务描述语言(Web Services Description Language,WSDL) 规范的细节。
- 关于本文介绍的主题的问题、意见和帮助,请访问我们的 技术支持讨论论坛。
- 访问 WebSphere Studio 试用计划 以获得 WebSphere Studio 产品的试用版本和附加帮助。
- 欲进一步熟悉 Linux 上的开发,请阅读 “针对 Linux 开发新手的基本任务”(developerWorks,2003 年 10 月)。
- 要开始了解 WebSphere Studio Application Developer 或 Site Developer,请阅读 用 WebSphere Studio Site Developer 在 90 秒内快速启动您的 Linux 应用程序:“Hello, World”(developerWorks,2003 年 3 月)。
- 在“创建基于 Struts 的 Web 应用程序”(developerWorks,2003 年 10 月)中,学习如何使用 IBM 的 WebSphere Studio 产品来创建一个使用 Struts 的简单 Web 应用程序;Struts 是用于开发 Web 应用程序的概念框架,它是 Apache 软件基金会 Jakarta 项目的组成部分。
- 在 IBM 红皮书“Linux Application Development Using WebSphere Studio 5”中查找相关信息。
- 在 developerWorks Linux 专区可以找到更多 为 Linux 开放人员准备的参考资料。
- 了解关于 针对 Linux 的 IBM 软件 的更多信息。
| 关于作者 Gary Bist 是 IBM 多伦多实验室的专职技术作家。他曾经与开发 IBM 的 WebSphere Studio Application Developer 系列及其前身 VisualAge for Java 的多个团队共事。您可以通过电子邮件 [email protected] 联系他。 |














