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

Java编程

开发平台:

Java

  1. package bible.rmi.example2;
  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.     InitialContext ctx = null;
  16.     try {
  17.       // Get the remote stub for the Price server via JNDI.
  18.       ctx = Environment.getInitialContext();
  19.       PriceServer server =
  20.         (PriceServer) ctx.lookup(PriceServer.PRICESERVERNAME);
  21.       // Remote call
  22.       String securities [] = server.getSecurities();
  23.       if (securities != null) {
  24.         for (int i = 0; i < securities.length; i++) {
  25.           // Remote call
  26.           System.out.println("Security: " + securities [i] + " Price: "
  27.                              + server.getPrice(securities [i]));
  28.         }
  29.       } else {
  30.         System.out
  31.           .println("No securities registered with the server at this time.");
  32.       }
  33.     } catch (Exception e) {
  34.       e.printStackTrace();
  35.     } finally {
  36.       try {
  37.         ctx.close();
  38.       } catch (Exception e) {
  39.         e.printStackTrace();
  40.       }
  41.     }
  42.   }
  43.   /**
  44.    * Creates a QuoteClient and schedules it for periodic running via a Timer.
  45.    * @param args
  46.    */
  47.   public static void main(String[] args) {
  48.     Timer       t      = new Timer();
  49.     QuoteClient client = new QuoteClient();
  50.     System.out.println("QuoteClient started.");
  51.     // Starting in 10 secs, check every 20 secs.
  52.     t.schedule(client, 10000, 20000);
  53.   }
  54. }