微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AXIS2 webservice实例代码--客户端

 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] 举报,一经查实,本站将立刻删除。

相关推荐