| /* |
| * 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.client.Call; |
| import org.apache.axis.client.Service; |
| import org.apache.axis.utils.Options; |
| |
| import javax.xml.namespace.QName; |
| import java.net.URL; |
| |
| public class GetQuote2 { |
| public String symbol ; |
| |
| /** |
| * This will use the WSDL to prefill all of the info needed to make |
| * the call. All that's left is filling in the args to invoke(). |
| */ |
| 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); |
| } |
| |
| /* Define the service QName and port QName */ |
| /*******************************************/ |
| QName servQN = new QName("urn:xmltoday-delayed-quotes","GetQuoteService"); |
| QName portQN = new QName("urn:xmltoday-delayed-quotes","GetQuoteJava"); |
| |
| /* Now use those QNames as pointers into the WSDL doc */ |
| /******************************************************/ |
| Service service = new Service( new URL("file:GetQuote.wsdl"), servQN ); |
| Call call = (Call) service.createCall( portQN, "getQuote" ); |
| |
| /* Strange - but allows the user to change just certain portions of */ |
| /* the URL we're gonna use to invoke the service. Useful when you */ |
| /* want to run it thru tcpmon (ie. put -p81 on the cmd line). */ |
| /********************************************************************/ |
| opts.setDefaultURL( call.getTargetEndpointAddress() ); |
| call.setTargetEndpointAddress( new URL(opts.getURL()) ); |
| |
| /* Get symbol and invoke the service */ |
| /*************************************/ |
| Object result = call.invoke( new Object[] { symbol = args[0] } ); |
| |
| return( ((Float) result).floatValue() ); |
| } |
| |
| public static void main(String args[]) { |
| try { |
| String save_args[] = new String[args.length]; |
| float val ; |
| GetQuote2 gq = new GetQuote2(); |
| |
| /* Call the getQuote() that uses the WDSL */ |
| /******************************************/ |
| System.out.println("Using Java binding in WSDL"); |
| System.arraycopy( args, 0, save_args, 0, args.length ); |
| val = gq.getQuote( args ); |
| System.out.println( gq.symbol + ": " + val ); |
| } |
| catch( Exception e ) { |
| e.printStackTrace(); |
| } |
| } |
| }; |