技术开发 频道

调用.NET XML Web Services返回数据集合二


【IT168技术文档】

  下面就是在Internet Exploerer里直接调用这两个Web Method所得到的XML格式的结果:
  
  表5. GetPersons()的返回结果
<?xml version="1.0" encoding="utf-8"?>   <ArrayOfPerson xmlns:xsd="http://www.w3.org/2001/XMLSchema"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns="http://tempuri.org/">   <Person>   <Name>Alice</Name>   <Gender>Female</Gender>   </Person>   <Person>   <Name>Bob</Name>   <Gender>Male</Gender>   </Person>   <Person>   <Name>Chris</Name>   <Gender>Female</Gender>   </Person>   <Person>   <Name>Dennis</Name>   <Gender>Male</Gender>   </Person>   </ArrayOfPerson>
  表6. GetPersonTable()的返回的String类型的值
 <PersonTable> <Person>   <Name>Alice</Name>   <Gender>Female</Gender>   </Person> <Person>   <Name>Bob</Name>   <Gender>Male</Gender>   </Person> <Person>   <Name>Chris</Name>   <Gender>Female</Gender>   </Person> <Person>   <Name>Dennis</Name>   <Gender>Male</Gender>   </Person> <Person>   <Name>Eric</Name>   <Gender>Male</Gender>   </Person> </PersonTable>
  到这里,XML Web Service的创建就已经完成了。.NET中创建的XML Web Services遵循的是统一的行业标准(SOAP、XML等),因此无论使用.NET语言还是使用非.NET语言,都可以调用它。尤其对于GetPersonTable()返回的结果来说,只要用XML Parser作简单的处理,就能把数据提取出来。下面就将演示如何在Java中完成这一处理。
  
  3. 在Java中调用.NET Web Services,处理返回的数据集合
  
  编写客户端调用Web Services时,最快速简便做法的是利用工具根据Web Services的WSDL描述生成客户端代理类(Proxy),而不是直接对SOAP Toolkit进行编程。在.NET Framework中,这个工作可以由wsdl.exe完成。在Java中,可以在JBuilder或者VisualAge Java等Java IDE中安装一个叫做WASP Developer的免费插件,这个插件也能完成由WSDL描述生成Proxy类的工作。另外,该公司还提供了WASP Server for Java和WASP UDDI,降低了用户用Java开发Web Services以及建立UDDI服务的难度。
  
  在本文的例子中,用了JBuilder 7+WASP Developer来调用前文中建立的.NET XML Web Services。在调用之前,首先是用WASP Developer生成Proxy类。从图表7、8中可以看到,生成Proxy的工具已经在Java中也创建了一个Person类:
  
  表7. 用WASP Developer生成的Proxy类

  表8. WASP Developer创建的Person类
package javaclient.service1Soap12Clientstruct;      public class Person {   public java.lang.String Name;   public java.lang.String Gender;   }      /*   * Generated by WSDLCompiler, (c) 2002, Systinet Corp.   * http://www.systinet.com   */
0
相关文章