zoukankan      html  css  js  c++  java
  • websercie调用方式

    package com.axis2;
    
    import javax.xml.namespace.QName;
    
    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.rpc.client.RPCServiceClient;
    
    public class WebService {
    
        public static void main(String[] args) {
            try {
                // 使用RPC方式调用WebService
                RPCServiceClient serviceClient = new RPCServiceClient();
                // 直接引用远程的wsdl文件(创建WSDL的URL,注意不是服务地址)
                String url = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl";
                // 指定调用WebService的URL
                EndpointReference targetEPR = new EndpointReference(url);
                Options options = serviceClient.getOptions();
                // 确定目标服务地址
                options.setTo(targetEPR);
                // 确定调用方法(wsdl 命名空间地址 (wsdl文档中的targetNamespace) 和 方法名称 的组合)
                options.setAction("http://WebXml.com.cn/getMobileCodeInfo");
                // 指定方法的参数值
                Object[] parameters = new Object[] {"18259153461", ""};
    
                // 创建服务名称
                // 参数1:namespaceURI - 命名空间地址 (wsdl文档中的targetNamespace)
                // 参数2:localPart - 服务视图名 (wsdl文档中operation的方法名称,例如<wsdl:operation name="getMobileCodeInfo">)
                QName qname = new QName("http://WebXml.com.cn/", "getMobileCodeInfo");
    
    
                // 调用方法一 传递参数,调用服务,获取服务返回结果集
    /*            OMElement element = serviceClient.invokeBlocking(qname, parameters);
                System.out.println(element);
    
                 * 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。
                 * 我们可以对之灵活应用,下面我取第一个元素值,并打印之。因为调用的方法返回一个结果
    
                String result = element.getFirstElement().getText();
                System.out.println(result);*/
    
    
                // 调用方法二 getPrice方法并输出该方法的返回值
                // 指定方法返回值的数据类型的Class对象
                Class[] returnTypes = new Class[] {String.class};
                Object[] response = serviceClient.invokeBlocking(qname, parameters, returnTypes);
                String result = (String) response[0];
                System.out.println(result);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }
    

      

  • 相关阅读:
    谜题92:双绞线
    谜题91:序列杀手
    谜题90:荒谬痛苦的超类
    谜题89:泛型迷药
    谜题88:原生类型的处理
    谜题87:紧张的关系
    谜题86:有毒的括号垃圾
    谜题85:惰性初始化
    谜题84:被粗暴地中断
    easyUi DataGrid
  • 原文地址:https://www.cnblogs.com/zkx4213/p/13438260.html
Copyright © 2011-2022 走看看