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());
}
}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。