IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

协同使用IBM WebSphere Studio和Microsoft .NET: 第一部分:从WebSphere Studio客户端中调用.NET Web服务

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 初级

Ope-Oluwa Soyannwo (soyannwo@uk.ibm.com), 软件工程师,Hursley Solution Test , IBM Hursley

2003 年 10 月 01 日

本文分为两个部分,描述了如何用Application Developer和Visual Studio .NET构建Web服务。它演示了Application Developer和.NET之间的互操作性。它还为调用返回对象和嵌套对象的Web服务提供了详细的部署说明。第一部分描述了如何从用Application Developer开发的J2EE客户端调用部署在IIS中的.NET Web服务。

©IBM版权所有,2003年。保留所有权利。

引言

Web服务可以执行从简单的请求到复杂的业务交互范围广泛的功能。开放标准加之对人与应用程序之间的通信和协作的关注,已经创造了一种环境,在这种环境中,Web服务已经成为应用程序集成的媒介。它们可以称为Internet上转向分布式计算中的基础构件(building block)。可以利用来自不同源的多个Web服务构造应用程序,并且允许协同使用这些应用程序,而不用考虑它们驻留在哪里或如何进行实现。

Java™ 2平台企业版(J2EE)是为企业应用程序定义架构的Java平台。它支持Web服务,使得可以开发安全、健壮和互操作的商业应用程序。J2EE技术及其基于组件的模型旨在简化企业应用程序的开发和部署。IBM® WebSphere® Studio Application Developer(以下简称为Application Developer)是一种J2EE应用程序开发环境,它支持开发遵循J2EE 1.3规范的Web服务。 它提供了一种内置的WebSphere Application Server Version 5.0测试环境来测试J2EE应用程序。

Microsoft® .NET是Microsoft开发Web服务的软件平台。本文所使用的Web服务是用Microsoft Visual Studio® .NET开发而用Microsoft Internet Information Services(IIS)版本5.0进行测试的。

要了解关于Application Developer和Visual Studio .NET之间的主要区别的信息,请参阅 How IBM WebSphere Studio Application Developer Compares with Microsoft Visual Studio .NET -- Part 1: Conceptual Differences(来自IBM WebSphere Developer Technical Journal)。

Web服务的Extensible Markup Language(XML,可扩展标记语言)描述包含在Web Services Description Language(WSDL,Web服务描述语言)文件中。这些文件(为部署在Application Developer测试服务器中的J2EE Web服务开发的),可以导入Visual Studio .NET并用于开发.NET客户端。类似地,可以将为部署在IIS中的.NET Web生成的WSDL文件导入Application Developer,并且用于开发J2EE客户端。WSDL文件的这种导入/导出以及后面对两个平台之间Web服务的成功调用演示了用于这些平台的Web服务工具的互操作性。

这篇文章分为两个部分,描述了如何用Application Developer和Visual Studio .NET创建Web服务。它演示了Application Developer和.NET之间的互操作性。它还为调用返回对象和嵌套对象的Web服务提供了详细的部署说明。第一部分描述了如何从用Application Developer开发的J2EE客户端调用部署在IIS中的.NET Web服务。第二部分描述了如何从用Visual Studio .NET开发的.NET客户端调用部署在Application Developer测试服务器中的J2EE Web服务。

这篇文章假定您比较熟悉Application Developer和Visual Studio,目标读者为:

  • 具有基本的Web服务知识
  • 想要测试或演示.NET和Application Developer开发环境及工具之间的互操作性,特别关注Web服务开发

Credit Check(信用检查)Web服务

出于演示的目的,把J2EE和.NET Credit Check Web服务分别部署在Application Developer测试服务器和IIS中。该Web服务定为输出人的姓名、地址和policyID,而返回信用引用(credit quote),取决于调用哪一种方法。此信用引用可以是以下三种形式之一:

  • 一个字符串(信用得分),表示此人是否合格
  • 一个对象(person对象),包含关于此人的详细信息以及信用得分
  • 一个嵌套的对象(complexperson对象),包含人员详细信息和信用得分,其中人员详细信息分为姓名详细信息(name对象)和地址详细信息(address对象)

在每次调用方法时,都会生成一个随机数(信用权重)。这个数决定该信用得分是合格还是不合格。因此,该信用得分是此人的信用引用的随机预测。





回页首


从Application Developer客户端调用.NET Web服务

要从Application Developer客户端调用.NET Web服务,您必须将.NET Web服务引用添加到该客户端中。此Web引用是.NET WSDLURL。该WSDL文件是客户端用来调用Web服务的键。从此WSDL文件中,Application Developer可以生成Web服务代理(Proxy)。该代理担当工作站和Internet之间的中介。客户端程序通过代理来与Web服务进行交互。因此,该代理相当于代表用户的客户端,并且从Internet上的服务器中请求页面。当所请求得页面返回时,它使该页面与最初的请求相关联,并且将其发送到Application Developer客户端。.NET Web服务驻留在担当服务器的IIS中。

从Application Developer客户端调用.NET Web服务,需要完成以下操作步骤:

  1. 创建一个.NET Web服务。可以采取以下两种方式之一来完成此操作:
  2. 从Application Developer客户端调用.NET Web服务。

步骤1:创建一个.NET Web服务

这一部分描述如何创建一个.NET Web服务,然后从Application Developer客户端调用该服务。在创建了改服务之后,它就驻留在您的工作站的IIS中。

从头开始创建一个.NET Web服务

下面是必备软件清单:

  • WebSphere Studio Application Developer version 5.0
  • Internet Information Services (IIS) version 5.0
  • .NET Framework version 1.0 or later
  • Microsoft Visual Studio .NET Professional 2002 or later

本文所提供的代码在 samplecode.zip 文件的 DiskA 文件夹中,您可以 在本文的底部下载

首先,为该Web服务创建一个新的类库。

  1. 双击图标 或选择
    Start Menu => Programs => Microsoft Visual Studio .NET –> Microsoft Visual Studio .NET来打开Visual Studio .NET。
  2. 创建一个新的类库来存储对象定义(Person对象)。
  3. 选择 File => New => Project
  4. 选择 Visual C# Project(在左边的框中)和 Class Library(在右边的框忠)。
  5. 将Name字段从 ClassLibrary1 更改为 CreditCheckLib ,然后单击 OK.按钮。
    图1. 创建一个新的类库

  6. 在Solution Explorer(右框)中,右键单击 Class1.cs ,选择Rename,然后输入 Person.cs
  7. 右键单击Person.cs并且选择 ViewCode来查看 Person.cs 的代码。
  8. 删除全部内容。
  9. 从. zip 文件的 DiskA 文件夹中的 CreditCheckLib.txt 文件复制和粘贴代码。

    这段代码包含定义Person和Complex Person对象的类库。Person对象由九个字符串(头衔、姓、名、地址1、地址2、邮政编码、国家、policyID、creditScore)和一个整数值(creditWeight)组成。Complex Person对象由一个Name对象、一个Address对象、一个字符串(creditScore)和一个整数值(creditWeight)组成。请参见代码注释以获得更详细的信息。

  10. 选择 Build => Build Solution来创建该解决方案。选择 File => Save All来保存该解决方案。
  11. 选择 File => Close Solution来关闭该解决方案。

创建一个新的Active Server Page(动态服务器页面,ASP).NET Web服务项目。实际上,这个Web服务项目将利用上面创建的类库( Person.cs )。要创建一个ASP .NET Web服务项目,可以执行以下操作步骤:

  1. 选择 File => New => Project打开一个新的项目。
  2. 在左框中,选择Visual C# Projects。在右框中,选择 ASP .NET Web service
  3. 将地址更改为 http:// machinename : port/CreditCheck 其中, machinename是您的机器的名称,而 portWeb服务侦听的端口号。请参见 提示和技巧以获得关于如何检查机器名和端口号的说明。单击 OK按钮。
  4. 在Solution Explorer(右框)中,右键单击Service1.asmx,选择Rename和类型 CreditCheckWService.asmx
  5. 右键单击CreditCheckWService.asmx并选择 View Code来查看 CreditCheckWService.asmx 的代码。
  6. 删除全部代码。
  7. 将代码从 .zip 文件的 DiskA 文件夹中的 CreditCheckWS.txt 文件复制和粘贴到代码区。这段代码包含该Web服务。

为了使刚刚创建的类库( Person.cs )与将要创建的Web服务相关联,您必须创建到 Person.cs 的引用。

  1. 右键单击 References(在Solution Explorer中)并选择 Add a reference
  2. 在Add Reference对话框中,单击 Projects tab,然后单击 Browse
  3. 双击前面创建的 CreditCheckLib.dll 。此文件应该在 My Documents\Visual Studio Projects\CreditCheckLib\bin\debug\CreditCheckLib.dll 中。
  4. CreditCheckLib.dll 应该出现在该对话框的Selected Components部分。选择 OK
  5. 从工具栏中,选择 Debug=> Start without Debugging以运行Web服务。 

图2是一个基于Web的样本应用程序客户端,作为该.NET Web服务的前端。


图2. 基于Web的样本应用程序客户端

该Web服务的URL在地址栏中。它是 http:// machinename : port/CreditCheck/CreditCheckWService.asmx

该WSDL URL是 http:// machinename : port/CreditCheck/CreditCheckWService.asmx?wsdl

图3. WSDL文件的URL的内容

<?xml version="1.0" encoding="utf-8" ?>
- <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://tempuri.org/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://tempuri.org/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
  - <types>
   - <s:schema elementFormDefault="qualified"
 targetNamespace="http://tempuri.org/">
    - <s:element name="returnSimpleQuote">
      - <s:complexType>
        - <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="title" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="surname" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="forename" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="houseNo" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="address1" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="postcode" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="country" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
    - <s:element name="returnSimpleQuoteResponse">
      - <s:complexType>
        - <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="returnSimpleQuoteResult" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
    - <s:element name="returnComplexQuote">
      - <s:complexType>
        - <s:sequence>
 ...
        

单击每个方法和输入值的链接来测试该Web服务。单击 Invoke。每个方法的预期结果示于图5、7和9中。

图4显示了 returnComplexQuote 方法所需的输入参数。

图4. 复杂引用的.NET客户端输入表单

此方法返回一种复杂类型(Person对象),如图5所示。

图5. 来自该Web服务的复杂引用的结果

<?xml version="1.0" encoding="utf-8" ?>
- <Person xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://tempuri.org/">
  <title>Miss</title>
  <surname>Collins</surname>
 <forename>Sarah</forename>
  <address1>Farmhouse Mews</address1>
  <address2>New waltham</address2>
  <postcode>DN36 7HJ</postcode>
  <country>UK</country>
  <policyID>55637</policyID>
  <creditScore>Sorry you have FAILED the Credit Check</creditScore>
  <creditWeight>101</creditWeight>
  </Person>
        

图6显示了 returnSimpleQuote 方法所需要的输入参数。


图6 简单引用的.NET客户端输入表单

此方法返回一个字符串值(creditScore),如图7所示。

图7. 来自该Web服务的简单引用的结果

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">Sorry you have FAILED the Credit Check
</string>
        

图8显示了 returnMComplexQuote 方法所需要的输入参数。


图8 更复杂的引用的.NET客户端输入表单

此方法返回一种复杂类型(Person对象),包含Address和Name对象、一个字符串值(creditScore)和一个整数值(creditWeight),如图9所示。

图9. 来自该Web服务的更复杂的引用的结果。

<?xml version="1.0" encoding="utf-8" ?>
- <complexPerson xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://tempuri.org/">
- <name>
   <title>Miss</title>
   <surname>Collins</surname>
   <forename>Sarah</forename>
  </name>
- <address>
   <houseNo>1</houseNo>
  <address1>Farmhouse Mews</address1>
  <address2>New waltham</address2>
  <postcode>DN36 7HJ</postcode>
   <country>UK</country>
  </address>
  <creditScore>Sorry you have FAILED the Credit Check</creditScore>
  <creditWeight>65</creditWeight>
 </complexPerson>
        

仔细地观察上面的XML标记可以发现,更复杂的引用有缩排的名称和地址标记。这些是Person对象中的对象,缩排是为了使其与复杂引用结果相区别,在复杂引用结果中,没有标记示缩排的。

.NET Web服务已经生成了,这样它就可以返回一种简单类型(一个字符串)或两种复杂类型。其中,一种是简单的对象(Person对象),而另一种是嵌套的对象(Person对象,包含Address和Name对象、一个字符串和一个整数值)。该Web服务驻留在IIS中,作为.NET服务器。您应该有名为 CreditCheck 文件夹在 MyDocuments/ Visual Studio Projects/ 目录中以及名为 CreditCheck 的虚拟文件夹在 C:/inetpub/wwwroot/ 目录中。

安装本文所提供的.NET Web服务

这一部分描述如何安装本文所提供的Credit Check .NET Web服务示例。在安装好了之后(通过运行可执行文件进行安装),.NETWeb服务就驻留在工作站的IIS中。取决于从Application Developer客户端调用哪一种方法,该Web服务可以返回一种简单类型(字符串值),表示信用得分,也可以返回一种复杂类型(对象),包含关于某个人的详细信息。

以下是必备软件的清单:

  • WebSphere Studio Application Developer version 5.0
  • Internet Information Services (IIS) version 5.0
  • .NET Framework version 1.0 or later
  • .NET Web service provided with this article

Visual Studio .NET创建项目,以便它们可以部署在另一台工作站上。它创建一个可执行文件,这个文件可以把项目安装在工作站服务器上。在这种情况下,就可以把用.NET编写的Credit Check Web服务项目示例安装在工作站的IIS上了。所安装的文件( CreditCheckSetup) 存储在 C:\inetpub\wwwroot\CreditCheckSetup\CreditCheckWService 目录中。为了使用这个Web服务,您不需要将 Visual Studio .NET安装在您的计算机上,但是必须安装.NET框架。

要安装Credit Check Web服务示例,可以使用 .zip fil文件的 DiskC fole.文件夹中的代码。

  1. 打开名为 CreditCheckSetup 的文件夹。
  2. 打开名为 Debug 的文件夹。
  3. 双击下面的图标以运行 Setup.exe 文件。

  4. 在Setup Wizard Welcome屏幕上单击 Next按钮。InstallationAddress提示屏幕会打开。
  5. 接受缺省值,或者将该端口号更改为所需的端口号。请参见 提示和技巧以获得关于如何检查端口号的信息。
  6. 在Confirm InstallationClick屏幕上单击 Next按钮,然后在Installation Complete屏幕上单击 Close按钮。

给定的Web服务的URL是 http:// machinename : port/CreditCheckSetup/CreditCheckWService.asmx 。需要在Application Developer中测试此Web服务的WSDL URL是 // machinename : port/CreditCheckSetup/CreditCheckWService.asmx?wsdl

阅读下面的说明以理解所安装的Web服务及其作用:

  • 该Web服务驻留在位于 C:\inetpub\wwwroot\CreditCheckSetup\CreditCheckWService 的IIS中的虚拟文件夹内。
  • 把以下URL输入到浏览器中,可以查看需要导入Application Developer的Web服务样本客户端应用程序: http:// localhost/CreditCheckSetup/CreditCheckWService.asmx 。可以由 machinename : port替换变量 localhost
  • 要测试Web服务,就必须提供WSDL。该.NET Web服务WSDL URL通常使用如下的形式: // machinename : port/<servicename>/<serviceasmx>?wsdl 。注意,它是带有 ?wsdl 的样本客户端应用程序的URL。

图10是基于Web的样本应用程序客户端,作为.NET Web服务的前端。单击任何链接以测试该Web方法。


图10. 基于Web的样本应用程序客户端

填写所需的字段,并且单击 Invoke,以启动Web服务。


图11. 样本.NET客户端的输入表单

Web服务由下面描述的三种方法组成:

returnSimpleQuote
此方法采用七个参数:该人的头衔、姓、名、住宅编号、地址1、邮政编码和国家。它返回一个字符串值(creditScore)。示例如下:

    <string xmlns =" http://tempuri.org/"> Sorry you have FAILED
    the Credit Check
    </string>
    

returnComplexQuote
此方法采用九个参数:该人的头衔、姓、名、住宅编号、地址1、地址2、邮政编码、国家和PolicyID。它返回一种复杂类型(Person对象),包含九个字符串值(头衔、姓、名、地址1、地址2、邮政编码、国家、PolicyID、creditScore)和一个整数值(creditWeight)。creditScore是来自该Web服务的“Pass”或“Fail”结果,并且是从一个随机的整数值推导出的。示例在清单1中。

图12.returnComplexQuote

    <?xml version="1.0" encoding="utf-8" ?>
    - <Person xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
              xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
              xmlns ="http://tempuri.org/">
            <title>Miss</title>
            <surname>Miller</surname>
            <forename>Kate</forename>
            <address1>Miller Crescent</address1>
            <address2>The Polygon</address2>
            <postcode>SO 14 5Rf</postcode>
            <country>UK</country>
            <policyID>XXTY987</policyID>
            <creditScore>You have PASSED the Credit Check</creditScore>
            <creditWeight>694</creditWeight>
    </Person> 
    

returnMComplexQuote
此方法采用九个参数:该人的头衔、姓、名、住宅编号、地址1、地址2、邮政编码、国家和PolicyID。它返回一种复杂类型,包含两种复杂类型、一个字符串值和一个整数值。复杂类型Person对象包括一个Address对象、一个Name对象、字符串值creditScore和整数值creditWeight。示例在清单2。

图13.returnComplexMQuote

    <?xml version="1.0" encoding="utf-8" ?>
    <complexPerson xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns ="http://tempuri.org/">
               <name>
                 <title>Miss</title>
                 <surname>Miller</surname>
                 <forename>Kate</forename>
               </name>
               <address>
                 <houseNo>1</houseNo>
                 <address1>Miller Crescent</address1>
                 <address2>The Polygon</address2>
                 <postcode>SO 14 5Rf</postcode>
          <country>UK</country>
               </address>
               <creditScore>Sorry you have FAILED the Credit Check </creditScore>
               <creditWeight>140</creditWeight>
     </complexPerson>
    

步骤2:从Application Developer客户端调用.NET Web服务

这一部分中的过程利用刚用VisualStudio .NET创建好的Web服务URL。如果您已经注意到了该URL,就可以执行以下操作步骤:

  1. 选择 Start Menu=> Programs=> MicrosoftVisual Studio .NET–> Microsoft Visual Studio.NET来打开VisualStudio
  2. 在Microsoft Development Environment中,选择 File=> Open=> Project
  3. 双击 CreditCheckWService 文件夹,然后双击 CreditCheckWService.asmx 文件。
  4. 当该项目打开时,选择 Debug=> Startwithout Debugging
  5. 复制地址栏中的URL。该URL应该是 http:// machinename : port/CreditCheck/CreditCheckWService.asmx
  6. ?wsdl 添加到URL的末尾,例如, http:// machinename : port/CreditCheck/CreditCheckWService.asmx?wsdl 。这是WSDLURL。
  • 对于已安装的Web服务,该WSDL URL是: http:// machinename : port/CreditCheckSetup/CreditCheckWService.asmx?wsdl ,其中, machinename该服务所驻留的机器。
  • 对于从头编写的Web服务,该WSDL URL是: http:// machinename : port/CreditCheck/CreditCheckWService.asmx?wsdl ,其中, machinename该服务所驻留的机器。

首先,创建一个Web项目。该Web项目包含调用.NETWeb服务的客户端。

  1. 打开Application Developer,然后单击 或选择 Start > Programs> IBM WebSphere Studio> Application Developer
  2. 指定需要用于会话的目录,例如, C:\WSAD v5 Projects\TestDotNet\workspace
  3. 在第一次使用时,Application Developer首先打开一个空的工作区和J2EE透视图。如果不是这样,则可以选择 Window=> Open Perspective=> J2EE
  4. 选择 File=> New=> Other。再选择 Web(在左框中)和 Web Project(在右框中)。单击 Next按钮。

    图14.创建一个新的Web项目

  5. 在Define Web Project屏幕上,通过输入 TestDotNet 作为新项目的名称来赋予给项目一个名称。单击 Next按钮。
  6. 在J2EE Settings Page,使用缺省值。在Web Project Features下,项目“J2EE WebProject”和“Create a default CSS file”应该被选中。
  7. 在Create Web Project窗口(J2EE Settings Page)中选取New,然后输入新项目的名称( CreditCheckWebProject )。
  8. 使上下文根为Web Project名,即 TestDotNet
  9. 使J2EE级别为1.3,然后单击 Finish按钮。

接着,创建Web服务客户端。

  1. 选择 File=> New=> Other
  2. 选择 Web services(在左框中),然后选择 Web service Client(在右框中)。单击 Next按钮。
    图15.访问现有的XML Web服务

  3. 创建一个Java Client Proxy,以便在您的ApplicationDeveloper客户端和.NET Web服务之间进行通信。在Review Web服务选项中,缺省Client Proxy类型应该为JavaProxy。选取“Create folderswhen necessary”,然后单击 Next按钮。
  4. 在Web Service Client窗口中指定.NET Credit Check Web服务的位置。变量 machinename是该服务所驻留的机器。

    已安装的Web服务的WSDL为 http://<machinename>:<port>/CreditCheckSetup/CreditCheckWService.asmx?wsdl

    从头编写的Web服务的 WSDL为 http://<machinename>:<port>/CreditCheck/CreditCheckWService.asmx?wsdl

    单击 Next按钮。
  5. 在Web Service Binding Proxy Generation屏幕上,接受缺省值(GenerateProxy、“returnQuoteServiceSoap”的Soap绑定“returnQuoteServiceSoap”)。
  6. 单击 Next按钮,然后在Web Service Test窗口中单击 Finish按钮。

测试Web服务

要测试Web服务,可以在Application Developer中生成一个样本客户端。此样本客户端生成一个输入表单,并且显示来自Web服务的结果。

  1. 在J2EE Navigator中,展开 TestDotNet/Java Source/proxy.soap ,然后右键单击 CreditCheckWServiceProxy.java
  2. 选择 Web Service- Generate Sample Application
  3. 选择您想要测试的方法。在缺省情况下,选择所有的方法。
  4. 接受缺省设置,然后单击 Finish按钮。 一个浏览器在Application Developer中打开,方法在该页面的Methods区段中列出。
  5. 在Methods区段中,单击方法链接以测试方法。这些方法有:
    • returnSimpleQuote ( org.tempuri.ReturnSimpleQuoteElement )
    • returnComplexQuote ( org.tempuri.ReturnComplexQuoteElement )
    • returnMComplexQuote ( org.tempuri.ReturnMComplexQuoteElement )

    图16. Web服务测试的结果浏览器

  6. 单击 Invoke按钮。测试结果显示在Inputs区段下的Result窗格中。

预期结果

以下清单描述了预期结果:

  • returnSimpleQuote 方法接受所有输入字段中的字符串值,并且返回一个字符串,这个字符串可以是“Sorry you have FAILED the Credit Check”,也可以是“You have PASSED the Credit Check”。
  • returnComplexQuote 方法接受和 returnSimpleQuote 方法一样,接受所有输入字段中的字符串值。然而,它返回一个Person对象,包含九个字符串(头衔、名、姓、地址1、地址2、邮政编码、国家、policyID和creditScore)和整数值(creditWeight)。creditWeight是指派给此人的一个随机数,用于决定此人是否有合格的creditScore(信用检查结果)。
  • returnMComplexQuote 方法接受所有输入字段中的字符串值,并且返回一个Person对象,包含Address对象、Name对象、一个字符串值(creditScore)和一个整数值(creditWeight)。

代理(proxy)类负责调用Web服务及其方法。此类存储在 Java Source/proxy.soap 目录下的TestDotNet项目中。样本应用程序存储在 Web Content/sample 目录下的TestDotNet项目中。 

如果在关闭了Web浏览器之后,您决定重新测试Web服务,则可以如下手工运行样本客户端:

  1. 在J2EE Navigator中选择项目,展开TestDotNet并且打开 WebContent=> Sample=> project name (在这种情况下为CreditCheckWService)。
  2. 右键单击 Test Client,选择 Run on Server,然后单击 Finish按钮。

正如所述,Application Developer调用.NET Web服务,并且自动生成一个代理和一个样本客户端应用程序。这是互操作性的一种典型演示,其中,成功地从Application Developer调用了.NET Web服务。可以用Java代理类来将此.NET Web服务加到应用程序中。您可以创建servlet或JSP前端,您也可以直接从Java客户端调用此Web服务。





回页首


提示和技巧

这一部分包含了关于如何完成一些普通任务的说明,在本文的剩余章节中没有对这些任务进行详细的讲解。

如何检查机器名

要检查机器名,可以执行以下操作步骤:

  1. 右键单击 My Computer,然后选择 Properties
  2. 单击 Network Identification tab。机器名是完整的计算机名。

如何检查代理设置

要检查代理设置,可以执行以下操作步骤:

  1. 选择 Start=> Settings=> Control panel
  2. 双击Internet选项。
  3. 单击 Connections Tab
  4. 单击 Lan Settings。代理设置示于Proxy server(代理服务器)区段中。

如何检查.NET Web服务所侦听的端口号

要检查.NET Web服务所侦听的端口号,可以执行以下操作步骤:

  1. 右键单击 My Computer,然后选择 Manage
  2. 展开Services和Applications,然后展开Internet Information Services。
  3. 右键单击Right-click Default Web Site,然后选择 Properties
    图17. 访问Web站点特性

    在Web Site Identification选项卡中展示了TCP端口号、IP地址和描述。

在Visual Studio .NET中解决错误

当创建到Visual Studio .NET Web服务客户端中的Web服务的引用时,可能会出现以下错误:

c:\inetpub\wwwroot\CreditCheckApp2\CCheckForm3.aspx.cs(93): The type or namespace name 'creditCheckBeanService' does not exist in the class or namespace 'CreditCheckApp2.serviceRef' (are you missing an assembly reference?)





回页首


结束语

如果您看到这个错误信息,可以执行以下操作步骤:

  1. 检查存在于方法列表中可以从Web服务中调用的方法。一条绿色波浪线会出现在导致错误的代码行中。
  2. 删除句号之后的代码行。在图18的示例( serviceRef.person )中, person 下面划有一条绿色波浪线。删除 person
  3. 将光标放在 serviceRef 之后。同时按下Control键和空格键,以显示可以从Web服务中调用的方法的菜单。
  4. 双击正确的方法以选择它。在本示例中,列表中并不存在 person 方法,但是存在 Person (大写的P)方法。
    图18. 在Visual Studio .NET中解决错误

  5. 如果方法不在列表中,可以检查您是否已经将引用添加到正确的Web服务或类库中。
  6. 重新创建项目。

互操作性是Web服务的成功因素。用WebSphere Studio Application Developer开发的Web服务客户端可以成功地调用.NET C# Web服务。同样,.NET Web服务客户端也可以成功地调用Application Developer Web服务。简单的和复杂的Web服务都可以互操作,而不用考虑所使用的技术(J2EE或.NET)和它们所驻留的服务器构架(WebSphere Application Server或IIS)。

本文演示了从Application Developer客户端调用.NET Web服务(部署在IIS上)。第二部分将演示从.NET客户端调用Application Developer Web服务(部署在WebSphere ApplicationServer上)。





回页首


相关信息






回页首


下载

名字大小下载方法
samplecode.zip6 KBHTTP
关于下载方法的信息


关于作者

Ope-Oluwa Soyannwo是一名Web服务测试员(Web services tester),工作在IBM Hursley的IBM Hursley解决方案测试部门(IBM Hursley Solution Test Department)。她从事IBM WebSphere产品和Microsoft Visual Studio .NET产品之间的互操作性的测试工作。您可以通过 soyannwo@uk.ibm.com与Ope联系。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款