| /* |
| * Copyright 2001-2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package samples.stock ; |
| |
| import org.apache.axis.AxisFault; |
| import org.apache.axis.client.Call; |
| import org.apache.axis.client.Service; |
| import org.apache.axis.encoding.XMLType; |
| import org.apache.axis.utils.Options; |
| |
| import javax.xml.namespace.QName; |
| import javax.xml.rpc.ParameterMode; |
| import java.net.URL; |
| |
| /** |
| * |
| * @author Doug Davis (dug@us.ibm.com.com) |
| */ |
| public class GetQuote { |
| public String symbol ; |
| |
| // helper function; does all the real work |
| public float getQuote (String args[]) throws Exception { |
| Options opts = new Options( args ); |
| |
| args = opts.getRemainingArgs(); |
| |
| if ( args == null ) { |
| System.err.println( "Usage: GetQuote <symbol>" ); |
| System.exit(1); |
| } |
| |
| symbol = args[0] ; |
| |
| // useful option for profiling - perhaps we should remove before |
| // shipping? |
| String countOption = opts.isValueSet('c'); |
| int count=1; |
| if ( countOption != null) { |
| count=Integer.valueOf(countOption).intValue(); |
| System.out.println("Iterating " + count + " times"); |
| } |
| |
| URL url = new URL(opts.getURL()); |
| String user = opts.getUser(); |
| String passwd = opts.getPassword(); |
| |
| Service service = new Service(); |
| |
| Float res = new Float(0.0F); |
| for (int i=0; i<count; i++) { |
| Call call = (Call) service.createCall(); |
| |
| call.setTargetEndpointAddress( url ); |
| call.setOperationName( new QName("urn:xmltoday-delayed-quotes", "getQuote") ); |
| call.addParameter( "symbol", XMLType.XSD_STRING, ParameterMode.IN ); |
| call.setReturnType( XMLType.XSD_FLOAT ); |
| |
| // TESTING HACK BY ROBJ |
| if (symbol.equals("XXX_noaction")) { |
| symbol = "XXX"; |
| } |
| |
| call.setUsername( user ); |
| call.setPassword( passwd ); |
| |
| Object ret = call.invoke( new Object[] {symbol} ); |
| if (ret instanceof String) { |
| System.out.println("Received problem response from server: "+ret); |
| throw new AxisFault("", (String)ret, null, null); |
| } |
| res = (Float) ret; |
| } |
| |
| return res.floatValue(); |
| } |
| |
| public static void main(String args[]) { |
| try { |
| GetQuote gq = new GetQuote(); |
| float val = gq.getQuote(args); |
| // args array gets side-effected |
| System.out.println(gq.symbol + ": " + val); |
| } |
| catch( Exception e ) { |
| e.printStackTrace(); |
| } |
| } |
| |
| public GetQuote () { |
| }; |
| |
| }; |