01 package service;
02
03 import java.lang.Math;
04 import com.bea.control.TimerControl;
05
06 /**
07 * <p>This is the original service from which QuoteServiceControl.jcx was
08 * generated. Notice that the getQuote method takes two parameters. In
09 * QuoteService.jcx, the signature of the method is changed to accept a
10 * single parameter and hard-code the other.</p>
11 *
12 * <p>See the comments in QuoteServiceControl.jcx for details.</p>
13 *
14 * @common:target-namespace namespace="http://workshop.bea.com/QuoteService"
15 */
16 public class QuoteService implements com.bea.jws.WebService
17 {
18 String symbol;
19
20 /**
21 * @common:control
22 * @jws:timer timeout="5 seconds"
23 */
24 private TimerControl timer;
25
26 public Callback callback;
27
28 public interface Callback
29 {
30 /**
31 * @jws:conversation phase="finish"
32 */
33 public void onQuoteReady(String tickerSymbol, double dQuote);
34 }
35
36 /**
37 * This method is called by the QuoteClient.jws web service
38 * via the QuoteServiceControl control. Note that although the
39 * client isn't passing a customer ID value, this service receives
40 * one because the value is hardcoded in an XQuery map on the
41 * service control. The customer ID is not used, but is printed
42 * to the WebLogic Server console window.
43 *
44 * @common:operation
45 * @jws:conversation phase="start"
46 */
47 public void getQuote(int customerID, String tickerSymbol)
48 {
49 System.out.println("customer ID: " + customerID);
50
51 symbol = tickerSymbol;
52 timer.start();
53 }
54
55 private void timer_onTimeout(long time)
56 {
57 callback.onQuoteReady( symbol, (double)(Math.random() * 30.0) );
58 }
59 }
|