65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Apache AXIS 消费 .NET Web 服务

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.93/5 (21投票s)

2004年4月16日

Apache

1分钟阅读

viewsIcon

284781

downloadIcon

997

使用 Apache AXIS 消费 .NET Web 服务。

引言

在本文中,我将展示一个如何在 IIS 上使用 .NET 开发一个典型的 HelloWorld Web 服务,以及如何在 Java 中使用 Apache AXIS 消费该服务的示例。Apache AXIS 是 Apache 提供的 SOAP 实现。AXIS SOAP 实现提供 C++ 和 Java 两种语言版本。在本文中,我将使用 AXIS SOAP 的 Java 实现。Apache AXIS 可以从 这里 下载。

HelloWorld.asmx 文件是 C# 中的一个简单的文本文件。HelloWorld 类只是继承了 WebService 类,并实现了一个方法 SayHelloWorld()。为了使该方法成为一个 Web 方法,它被赋予了属性 [WebMethod]。IIS 负责生成 SOAP 消息和客户端的 WSDL 文件。

IIS 文件中的 Web 服务

<%@ WebService Language="C#" Class="HelloWorld" %>
using System;
using System.Web.Services;
public class HelloWorld : WebService 
{
     [WebMethod] public String SayHelloWorld() 
     {
          return "Hello World";
     }
}

要使用 AXIS 消费此 Web 服务,需要下载 HelloWorld Web 服务的 WSDL 文件。

现在,为了消费此 Web 服务,Apache AXIS 提供了一个工具 WSDL2Java,可以将 WSDL 规范文件转换为 Java 代码。该工具会生成四个 Java 类,这些类将负责处理 XML 和 SOAP 消息,并使 Web 服务的调用就像调用本地对象一样简单。

> java org.apache.axis.wsdl.WSDL2Java https:///HelloWorld.asmx?WSDL

上述工具将生成以下四个类文件,可用于访问该 Web 服务。

  • HelloWorld.java
  • HelloWorldLocator.java
  • HelloWorldSoap.java
  • HelloWorldSoapStub.java

客户端程序如下所示

package org.tempuri;
public class Client
{
      public static void main(String [] args)
      {
            try
            {  
                  HelloWorldLocator loc = new HelloWorldLocator();
                  HelloWorldSoap port = loc.getHelloWorldSoap();
                  System.out.println(port.sayHelloWorld());
            }
            catch(Exception e)
            {System.out.println(e.getMessage());}
      }
}

在接触 Apache AXIS 之前,我对在 Java 中开发和消费 Web 服务的第一反应是它非常痛苦。但是有了 Apache AXIS,开发和消费 Web 服务就像在 .NET 平台一样简单。

© . All rights reserved.