qqjianyue代碼工

          砌java代碼
          posts - 62, comments - 9, trackbacks - 0, articles - 10
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          調用axis2 WebService三種方法

          Posted on 2010-01-20 23:16 Qzi 閱讀(10507) 評論(0)  編輯  收藏 所屬分類: Web一般性問題
          第一:簡單的使用axis2包自己實現調用

          package common;

          import javax.xml.namespace.QName;
          import org.apache.axis2.AxisFault;
          import org.apache.axis2.addressing.EndpointReference;
          import org.apache.axis2.client.Options;
          import org.apache.axis2.rpc.client.RPCServiceClient;

          public class WebServiceUtils
          {
           // ----------------------------------------------------- Properties
           public static int TIMEOUT = 100000;

           // ----------------------------------------------------- Constructors

           // ----------------------------------------------------- Methods
           /**
            *
            * 調用axis2的webservice的方法
            *
            * @return
            */
           @SuppressWarnings("unchecked")
           static public Object[] invokeWebService( String url, String nameSpace, String method, Object[] args, Class[] returnTypes )
             throws AxisFault
           {
            RPCServiceClient serviceClient = new RPCServiceClient();
            Options options = serviceClient.getOptions();
            EndpointReference targetEPR = new EndpointReference( url );
            options.setTo( targetEPR );
            options.setTimeOutInMilliSeconds( TIMEOUT );
            QName opName = new QName( nameSpace, method );
            Object[] results = serviceClient.invokeBlocking( opName, args, returnTypes );
            return results;
           }
          }


          第二:

          public static OMElement getEchoOMElement() {
                  OMFactory fac = OMAbstractFactory.getOMFactory();
                  OMNamespace omNs = fac.createOMNamespace(
                          "http://example1.org/example1", "example1");
                  OMElement method = fac.createOMElement("echo", omNs);
                  OMElement value = fac.createOMElement("Text", omNs);
                  value.addChild(fac.createOMText(value, "Axis2 Echo String "));
                  method.addChild(value);

                  return method;
              }

           public static void main(String[] args) {
                  try {
                     OMElement payload = ClientUtil.getEchoOMElement();
                      Options options = new Options();
                    
                      options.setTo(targetEPR);
                      options.setAction("urn:echo");

                      //Blocking invocation
                      ServiceClient sender = new ServiceClient();
                      sender.setOptions(options);
                      OMElement result = sender.sendReceive(payload);

                      System.out.println(result);
                    
                      System.out.println(options.getTo());

                  } catch (AxisFault axisFault) {
                      axisFault.printStackTrace();
                  }
              }

           
          第三:

          利用插件生成客戶端
          private static String URL="http://localhost:8080/axis2/services/WeatherService"; 
              public static void main(String[] args) throws RemoteException {
                  try {
                      WeatherServiceStub stub;
                      if (args != null && args.length != 0) {
                          stub = new WeatherServiceStub(args[0]);
                        
                      } else {
                          stub = new WeatherServiceStub(URL);
                      }
                      WeatherServiceStub.SetWeather setWether = new WeatherServiceStub.SetWeather();
                      WeatherServiceStub.Weather wether = new WeatherServiceStub.Weather();
                    
                      wether.setForecast("east");
                      wether.setRain(true);
                      wether.setTemperature(12.3f);
                      wether.setForecast("big");
                    
                      setWether.setWeather(wether);
                      stub.setWeather(setWether);
                    
                      WeatherServiceStub.GetWeatherResponse gw = new WeatherServiceStub.GetWeatherResponse();
                      System.out.println(gw.get_return());       
                    
                  } catch (AxisFault e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
              }


          本文部分來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yhhah/archive/2009/05/07/4158487.aspx

          主站蜘蛛池模板: 东阳市| 兴国县| 宝坻区| 大田县| 新兴县| 合水县| 马鞍山市| 渝北区| 陕西省| 盈江县| 湘乡市| 青河县| 南召县| 康马县| 安溪县| 长兴县| 武冈市| 贺兰县| 拜泉县| 九台市| 全南县| 五大连池市| 青铜峡市| 天气| 永宁县| 临洮县| 甘孜县| 大渡口区| 长沙市| 乾安县| 永宁县| 上杭县| 武清区| 东兰县| 沈丘县| 南木林县| 饶河县| 上饶县| 府谷县| 焉耆| 班戈县|