Source code: customfactory/client/stub/Run.java
1 package customfactory.client.stub;
2
3 import org.apache.wsif.WSIFService;
4 import org.apache.wsif.WSIFServiceFactory;
5 import org.apache.wsif.WSIFException;
6 import java.rmi.RemoteException;
7 import customfactory.client.stub.com.themindelectric.www.NetXmethodsServicesStockquoteStockQuotePortType;
8
9 /**
10 * Simple class that Runs the customfactory sample using a pregenerated stub interface
11 * To use this class, provide a company stock symbol
12 * on the command line. WSIF should then invoke the service with this information,
13 * using the port returned by the custom factory and returning with a recent stockquote.
14 * @author Nirmal K. Mukhi (nmukhi@us.ibm.com)
15 */
16
17 public class Run {
18
19 public static void main(String[] args) {
20 try {
21
22 if (args.length != 2) {
23 System.out.println(
24 "Usage: java customfactory.client.stub.Run <wsdl location> <company symbol>");
25 System.exit(1);
26 }
27
28 // create a service factory
29 WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
30
31 // parse WSDL
32 WSIFService service =
33 factory.getService(
34 args[0],
35 null,
36 null,
37 "http://www.themindelectric.com/wsdl/net.xmethods.services.stockquote.StockQuote/",
38 "net.xmethods.services.stockquote.StockQuotePortType");
39 // create the stub
40 // check if the user specified a preferred port
41 NetXmethodsServicesStockquoteStockQuotePortType stub = null;
42 stub = (NetXmethodsServicesStockquoteStockQuotePortType)
43 service.getStub(NetXmethodsServicesStockquoteStockQuotePortType.class);
44
45 // do the invocation
46 // args[1] is the company symbol
47 float quote = stub.getQuote(args[1]);
48 System.out.println(quote);
49
50 } catch (WSIFException we) {
51 System.out.println(
52 "Error while executing sample, received an exception from WSIF; details:");
53 we.printStackTrace();
54 } catch (RemoteException re) {
55 System.out.println(
56 "Error while executing sample, received an exception due to remote invocation; details:");
57 re.printStackTrace();
58 }
59 }
60 }