⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exchangeratecache.java

📁 JAVA Servlet2.3外文书籍源码
💻 JAVA
字号:
//== save as ExchangeRateCache.java
import java.io.*;
import java.net.*;
import java.util.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;

public class ExchangeRateCache {

  private static Hashtable rate_table = new Hashtable(6);

  public static String getExchangeRate(String country) {
    String rateString = (String)rate_table.get(country);
    if( rateString != null ) {
      return rateString + " (old)";
    } else {
      return callExchangeRateService( country );
    }
  }

  public static synchronized String callExchangeRateService(String country) {
    // just in case the last guy got it while we were waiting
    String rateString = (String)rate_table.get(country);
    if(rateString != null) {
      return rateString + " (got)";
    }
    try {
      URL url = new URL("http://localhost:8088/soap/servlet/rpcrouter");
      String encodingStyleURI = Constants.NS_URI_SOAP_ENC;
      URLConnection connection = url.openConnection();
      // Build the call.
      Call call = new Call ();
      call.setTargetObjectURI("SoapExchangeRate");
      call.setMethodName("getExchangeRate");
      Vector params = new Vector ();
      call.setEncodingStyleURI(encodingStyleURI);
      params.addElement(new Parameter("country", String.class, country, null));
      call.setParams(params);
      Response resp = call.invoke (url, "");
      if (resp.generatedFault()) {
        Fault fault = resp.getFault ();
        rateString = fault.getFaultString ();
      } else {
        Parameter result = resp.getReturnValue ();
        rateString = ((Double)result.getValue()).toString();
        rate_table.put( country, rateString );
        return rateString + " (new)";
      }  
    } catch(Exception e) {
      rateString = e.getMessage();
    }
    return rateString;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -