?package webservices.client;
import java.util.Vector;
import java.util.ArrayList;
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
import webservices.server.Weather;
import java.lang.reflect.Array;
import java.util.Hashtable;
public class weatherClient {
?public static void main(String args[]) throws Exception {
??RPCServiceClient serviceClient = new RPCServiceClient();
??Options options = serviceClient.getOptions();
??EndpointReference targetEPR = new EndpointReference(
????"http://localhost:8099/lucene/services/WeatherService");
??options.setTo(targetEPR);
??QName opSetWeather = new QName("http://server.webservices",
????"setWeather");
??QName opSetVector = new QName("http://server.webservices",
????"setVector");
??QName opSetHashtable = new QName("http://server.webservices",
????"setHashtable");
??QName opSetArray = new QName("http://server.webservices",
??"setWeatherobs");
??Weather w = new Weather();
??w.setTemperature((float) 39.3);
??w.setForecast("Cloudy?? with?? showers ");
??w.setRain(true);
??w.setHowMuchRain((float) 4.5);
??Weather w1 = new Weather();
??w1.setTemperature((float) 38.3);
??w1.setForecast("Cloudy?? is?? showers ");
??w1.setRain(false);
??w1.setHowMuchRain((float) 3.0);
??Vector params = new Vector();
??params.addElement(w);
??params.addElement(w1);
??System.out.println(params);
??
??Object[] opSetWeatherVector = new Object[] { params };
??//数据传不上去
??//System.out.println("Start Vector");
??//serviceClient.invokeRobust(opSetVector,opSetWeatherVector);
??
??Hashtable ht = new Hashtable();
??ht.put("1",w);
??ht.put("2",w1);
??System.out.println(ht);
??Object[] opSetWeatherArgsWeather = new Object[] { w1 };
??System.out.println("Start One Weather");
??serviceClient.invokeRobust(opSetWeather,opSetWeatherArgsWeather);
??
??Object[] opSetWeatherArgsHash = new Object[] { ht };
??//实际数据不能上传到服务器
??System.out.println("Start HashTable");
??serviceClient.invokeRobust(opSetHashtable,opSetWeatherArgsHash);
??
??//实际数据上传到服务器
??ArrayList array = new ArrayList();
??array.add(w);
??array.add(w1);
??Object[] a = new Object[] {array.toArray()};
??System.out.println("Start Array");
??serviceClient.invokeRobust(opSetArray,a);
??
?
??System.out.println("Start get one weather");
//?? Getting the weather
??????? QName opGetWeather =
??????????? new QName("hhttp://server.webservices","getWeather");
??????? Object[] opGetWeatherArgs = new Object[] { };
??????? Class[] returnTypes = new Class[] { Weather.class };
???????
??????? Object[] response = serviceClient.invokeBlocking(opGetWeather,
??????????????? opGetWeatherArgs,returnTypes);
???????
??????? Weather result = (Weather) response[0];
???????
??????? if (result == null) {
??????????? System.out.println("Weather didn't initialize!");
??????????? return;
??????? }
??????? else
??????? {
//??????? ? Displaying the result
??????????? System.out.println("Temperature?????????????? : " +
?????????????????????????????? result.getTemperature());
??????????? System.out.println("Forecast????????????????? : " +
?????????????????????????????? result.getForecast());
??????????? System.out.println("Rain????????????????????? : " +
?????????????????????????????? result.getRain());
??????????? System.out.println("How much rain (in inches) : " +
?????????????????????????????? result.getHowMuchRain());
??????? }
??????? System.out.println("Start get All weather");
//?? Getting all? weathers
??????? QName opGetWeathers =
??????????? new QName("hhttp://server.webservices","getWeathers");
??????? Object[] opGetWeathersArgs = new Object[] { };
??????? Class[] returnsTypes = new Class[] { Weather[].class };
???????
??????? Object[] responses = serviceClient.invokeBlocking(opGetWeathers,
??????????????? opGetWeathersArgs,returnsTypes);
???????
??????? Weather[] results = (Weather[]) responses[0];
???????
??????? for (int i =0;i <results.length;i++)
??????? {
??????? ?System.out.println("the "+i+" bean Temperature?????????????? : " +
??????? ???results[i].getTemperature());
??? System.out.println("the "+i+" bean Forecast????????????????? : " +
?????????????????????? results[i].getForecast());
??? System.out.println("the "+i+" bean Rain????????????????????? : " +
?????????????????????? results[i].getRain());
??? System.out.println("the "+i+" bean How much rain (in inches) : " +
??????????????????? results[i].getHowMuchRain());
??????? }
???????
???????
???????
?}}