KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > clients > stockquote > Main


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2002 The Apache Software Foundation. All rights
6  * reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Apache Software Foundation (http://www.apache.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "WSIF" and "Apache Software Foundation" must
28  * not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact apache@apache.org.
31  *
32  * 5. Products derived from this software may not be called "Apache",
33  * nor may "Apache" appear in their name, without prior written
34  * permission of the Apache Software Foundation.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ====================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals on behalf of the Apache Software Foundation and was
52  * originally based on software copyright (c) 2001, 2002, International
53  * Business Machines, Inc., http://www.apache.org. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 package clients.stockquote;
59
60 import org.apache.wsif.WSIFService;
61 import org.apache.wsif.WSIFServiceFactory;
62 import org.apache.wsif.base.WSIFServiceImpl;
63 import org.apache.wsif.providers.soap.apacheaxis.WSIFDynamicProvider_ApacheAxis;
64 import org.apache.wsif.util.WSIFPluggableProviders;
65
66 import stockquote.wsifservice.StockquotePT;
67
68 /**
69  * This sample shows how to use WSIF to invoke the addressbook service
70  * using the static stub. It uses both the ports avaiable via the stub
71  * to invoke the service.
72  *
73  * @author Sanjiva Weerawarana
74  * @author Matthew J. Duftler
75  * @author Alekander Slominski
76  * @author Paul Fremantle
77  * @author Nirmal Mukhi
78  * @author Michael Beisiegel
79  */

80 public class Main {
81
82     private static void doit(StockquotePT service) throws Exception JavaDoc {
83         String JavaDoc name1 = "IBM";
84         System.err.println(">> Getting quote for '" + name1 + "'");
85         float quote = service.getQuote(name1);
86         System.err.println(">> Received quote: " + quote);
87     }
88
89     private static void usage() {
90         System.err.println(
91             "Usage: java "
92                 + Main.class.getName()
93                 + " portName wsdlLocation [soap|axis]");
94         System.exit(1);
95     }
96
97     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
98         if (args.length > 3)
99             usage();
100
101         String JavaDoc protocol = null;
102         String JavaDoc portName = args.length > 0 ? args[0] : null;
103         if (args.length == 1 && (portName.equals("soap") || portName.equals("axis"))) {
104             protocol = portName;
105             portName = null;
106         }
107
108         String JavaDoc wsdlLocation = args.length > 1 ? args[1] : null;
109         if (args.length == 2
110             && (wsdlLocation.equals("soap") || wsdlLocation.equals("axis"))) {
111             protocol = wsdlLocation;
112             wsdlLocation = null;
113         }
114
115         protocol = args.length == 3 ? args[2] : "";
116         if (!protocol.equals("")
117             && !protocol.equals("soap")
118             && !protocol.equals("axis"))
119             usage();
120
121         if (protocol.equals("axis"))
122             WSIFPluggableProviders.overrideDefaultProvider(
123                 "http://schemas.xmlsoap.org/wsdl/soap/",
124                 new WSIFDynamicProvider_ApacheAxis());
125
126         WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
127             WSIFService service = factory.getService(wsdlLocation, null, // serviceNS
128
null, // serviceName
129
"http://wsifservice.stockquote/", // portTypeNS
130
"StockquotePT"); // portTypeName
131

132         StockquotePT stub = null;
133         if (portName != null) {
134             System.err.println("\n\nUsing '" + portName + "' port:");
135             stub = (StockquotePT) service.getStub(portName, StockquotePT.class);
136             doit(stub);
137         } else {
138             System.err.println("\n\nUsing SOAP port:");
139             stub = (StockquotePT) service.getStub("SOAPPort", StockquotePT.class);
140             doit(stub);
141
142             System.err.println("\n\nUsing Java port:");
143             stub = (StockquotePT) service.getStub("JavaPort", StockquotePT.class);
144             doit(stub);
145         }
146
147         if (protocol.equals("axis")) { // reset to default provider
148
WSIFPluggableProviders.overrideDefaultProvider(
149                 "http://schemas.xmlsoap.org/wsdl/soap/",
150                 null);
151         }
152     }
153 }
154
Popular Tags