XFire:轻松简单地开发Web Services

来源: 作者:LUPA 2008-01-23 出处:pcdog.com

.net  apache  cdn  j2se  java  
下一页 1 2 3 4 5 

  XFire是一个免费的开源SOAP框架,它不仅可以极大方便地实现这样一个环境,并且可以提供许多Web Services规范中高级特征,这些特征在多数的商业或者开源工具都没有提供。你要恰当的理解这些单词:great ease and simplicity(非常轻松和简单)。

你将会看到使用XFire创建Web Services是多么的简单。

  假如你的Web应用有一个Java类,并且你想把它的一个方法发布为Web Services,当使用XFire时,你不需要编写一行额外的Java代码。只需要编辑发布描述符,然后你就会得到一个Web Services。是的,它相当地简单。我们来看一个例子。

  一个简单的Java类

  我们的例子是一个银行业应用程序,服务器是运行在J2SE1.4.2_07下的Apache Tomcat5.5.7。假定你已经了解如何使用Java编写Web应用程序,并知道应该如何把它部署到Apache Tomcat服务器上。我们的Web应用程序非常简单;它只做一件事——将资金从一个账户转到另外一个账户上。一个普通的Java类BankingService包含了一个叫做transferFunds()的方法来为我们完成这项工作。它需要四个输入参数:

  1、 String fromAccount
  2、 String toAccount
  3、 double amount
  4、 String currency

  代码如下:

    package com.mybank.xfire.example;

    import java.text.NumberFormat;
    import java.text.DecimalFormat;

    /** XFire WebServices sample implementation class.
    */
    public class BankingService implements IBankingService {
     
      //Default constructor.
      public BankingService(){  
      }
     
      /** Transfers fund from one account to another.
      */
      public String transferFunds(
        String fromAccount, String toAccount, double amount, String currency){
       
        String statusMessage = "";
                 
        //Call business objects and other components to get the job done.
        //Then create a status message and return.
        try {
            NumberFormat formatter = new DecimalFormat("###,###,###,###.00");    
            statusMessage = "COMPLETED: " + currency + " " + formatter.format(amount)+
            " was successfully transferred from A/C# " + fromAccount + " to A/C# " + toAccount;
        } catch (Exception e){
            statusMessage = "BankingService.transferFunds(): EXCEPTION: " + e.toString();
        }
        return statusMessage;
      }
     
    }

  在这里你看到了什么异常的东西了吗?或许没有,除了默认的构造函数,类型是public。这是必须的。否则,XFire不能够初始化这个类。

因为使用接口的设计是一个好的实践,所以我们的Java类也实现了一个称为IBankingService的接口。代码十分简单:

  package com.mybank.xfire.example;

  public interface IBankingService {

    public String transferFunds(
      String fromAccount, String toAccount, double amount, String currency);
   
  }

  在实际实现中,这样一个方法可能包括各种类型的复杂调用、查询和处理操作。但是我们的示例代码已经最小化了,以至于我们可以集中精力在主要目标上:把这个方法发布为Web Services。

  你可以看到BankingService是一个普通的Java类,没有任何代码告诉我们它将会在Web Services中使用。好的,这里我们不需要增加任何东西。我们所有的工作都在部署描述符里完成。



下一页 1 2 3 4 5 
上一篇:Windows或开源:企业级OS之争趋势如何?
下一篇:发挥 Tomcat 在 Geronimo 中强大功能