QuoteClient.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package bible.rmi.example3;
  2. import weblogic.rmi.*;
  3. import java.util.*;
  4. import javax.naming.*;
  5. /**
  6.  * QuoteClient periodically asks the PriceServer for prices of all securities.
  7.  */
  8. public class QuoteClient extends TimerTask implements Runnable {
  9.   /**
  10.    * Gets a reference to the PriceServer, gets a list of securites, and displays prices.
  11.    */
  12.   public void run() {
  13.     System.out.println("QuoteClient, Getting quotes.");
  14.     System.out.println("Quote time: " + new Date(System.currentTimeMillis()));
  15.     try {
  16.       // Get the remote stub for the Price server via JNDI.
  17.       InitialContext ctx    = Environment.getInitialContext();
  18.       PriceServer    server =
  19.         (PriceServer) ctx.lookup(PriceServer.PRICESERVERNAME);
  20.       // Remote call
  21.       String securities [] = server.getSecurities();
  22.       if (securities != null) {
  23.         for (int i = 0; i < securities.length; i++) {
  24.           // Remote call
  25.           System.out.println("Security: " + securities [i] + " Price: "
  26.                              + server.getPrice(securities [i]));
  27.         }
  28.       } else {
  29.         System.out
  30.           .println("No securities registered with the server at this time.");
  31.       }
  32.     } catch (Exception e) {
  33.       e.printStackTrace();
  34.     }
  35.   }
  36.   /**
  37.    * Creates a QuoteClient and schedules it for periodic running via a Timer.
  38.    * @param args
  39.    */
  40.   public static void main(String[] args) {
  41.     Timer       t      = new Timer();
  42.     QuoteClient client = new QuoteClient();
  43.     System.out.println("QuoteClient started.");
  44.     // Starting in 10 secs, check every 20 secs.
  45.     t.schedule(client, 10000, 20000);
  46.   }
  47. }