zoukankan      html  css  js  c++  java
  • 【Java】webservice调用

    最近一个项目要调用.net开发的webservice服务,研究好一阵才调试通过,用了两种调用方式,记录一下。

    EndpointReference targetEPR = new EndpointReference(getUrl(referToOrgCode));// 指定调用WebService的URL
    Map<String, Object> objMap = new HashMap<String, Object>(); if(referToOrgCode.equals("12152501460785224W")){ //调用.net发布的webservice Options options = new Options(); options.setTimeOutInMilliSeconds(3*60*1000); //设置超时时间 options.setAction(getNs(referToOrgCode) + getMethodName(referToOrgCode));//设置action options.setTo(targetEPR); options.setProperty(HTTPConstants.CHUNKED, "false");// 设置不受限制 ServiceClient sender = new ServiceClient(); sender.setOptions(options); OMFactory fac = OMAbstractFactory.getOMFactory(); OMNamespace omNs = fac.createOMNamespace(getNs(referToOrgCode), ""); OMElement method = fac.createOMElement(getMethodName(referToOrgCode), omNs); OMElement name = fac.createOMElement("reqParam", omNs);// 设置入参名称 name.setText(methodParam);// 设置入参值 method.addChild(name); method.build(); OMElement response = sender.sendReceive(method); OMElement elementReturn = response.getFirstElement(); objMap.put("resultContent", elementReturn.getText()); }else{ RPCServiceClient client = new RPCServiceClient(); Options options = client.getOptions(); options.setTimeOutInMilliSeconds(3*60*1000); options.setTo(targetEPR); options.setAction(getNs(referToOrgCode) + getMethodName(referToOrgCode)); // 指定service方法的参数值 Object[] parmas = new Object[] { methodParam.toString() }; // 指定service方法返回值的数据类型的Class对象 Class<?>[] classes = new Class[] { String.class }; // 指定要调用的service方法及WSDL文件的命名空间 // QName opAddEntry = new QName(getNs(referToOrgCode), // getMethodName(referToOrgCode)); QName opAddEntry = new QName(getNs(referToOrgCode), getMethodName(referToOrgCode), getPrefix(referToOrgCode)); // 调用service方法并输出该方法的返回值 Object[] str = client.invokeBlocking(opAddEntry, parmas, classes); objMap.put("resultContent", str[0].toString()); }

      依赖:

    <version.axiom>1.2.13</version.axiom>
    <version.axis2>1.6.2</version.axis2>
    <dependency>
        <groupId>org.apache.ws.commons.axiom</groupId>
        <artifactId>axiom-api</artifactId>
        <version>${version.axiom}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ws.commons.axiom</groupId>
        <artifactId>axiom-impl</artifactId>
        <version>${version.axiom}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-adb</artifactId>
        <version>${version.axis2}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-kernel</artifactId>
        <version>${version.axis2}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-http</artifactId>
        <version>${version.axis2}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-transport-local</artifactId>
        <version>${version.axis2}</version>
    </dependency>
  • 相关阅读:
    小例子-使用JS/JQ获取a标签的href网址
    R语言随手记-线性回归模型诊断
    R语言随手记-数据处理
    正选择分析-PAML discussion group
    ggtree-基本函数使用
    PhastCons
    R语言随手记-批量读取和循环处理多个数据文件
    变异位点有害性软件评估
    ggplot画图-分页and排序
    R画图-标题和坐标轴篇
  • 原文地址:https://www.cnblogs.com/handongxue/p/10000829.html
Copyright © 2011-2022 走看看