zoukankan      html  css  js  c++  java
  • java axis调用带有soap头(soapheader)的.net webservice

    使用axis调用.net带soapheader的webservice是如何实现的,现在贴出代码

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Header>
      <AuthHeaderCS xmlns="http://tempuri.org/">
          <Username>string</Username>
          <Password>string</Password>
        </AuthHeaderCS>
      </soap:Header>
      <soap:Body>
        <StarTrans xmlns="http://tempuri.org/" />
      </soap:Body>
    </soap:Envelope>
    View Code
    import java.rmi.RemoteException;
    
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.ServiceException;
    import javax.xml.soap.SOAPException;
    
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import org.apache.axis.message.SOAPHeaderElement;
    
    public class aa
    {
        public static void main(String[] args) throws ServiceException, RemoteException
        {
            try
            {
                // 服务端的url,需要根据情况更改。
                String endpointURL = "http://192.168.0.209:7080/DataShareWebService.asmx?wsdl";
                Service service = new Service();
                Call call = (Call) service.createCall();
                call.setTargetEndpointAddress(new java.net.URL(endpointURL));
                call.setSOAPActionURI("http://tempuri.org/" + "StarTrans");
                call.setOperationName(new QName("DataShareWebService", "StarTrans"));// 设置操作的名称。
                // 由于需要认证,故需要设置调用的用户名和密码。
                SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("http://tempuri.org/", "AuthHeaderCS");
                soapHeaderElement.setNamespaceURI("http://tempuri.org/");
                try
                {
                    soapHeaderElement.addChildElement("Username").setValue("admin");
                    soapHeaderElement.addChildElement("Password").setValue("123");
                }
                catch (SOAPException e)
                {
                    e.printStackTrace();
                }
                call.addHeader(soapHeaderElement);
                call.setReturnType(XMLType.XSD_STRING);// 返回的数据类型
                call.addParameter("op1", XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
                String ret = (String) call.invoke(new Object[] { "11111" });// 执行调用
                System.out.println(ret);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
    View Code
  • 相关阅读:
    jvm系列(八):jvm知识点总览-高级Java工程师面试必备
    jvm系列(七):jvm调优-工具篇
    JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
    Java ClassLoader详解
    语言堆栈入门——堆和栈的区别
    kubernetes基本了解
    软编码和硬编码的理解
    前台页面传日期类型后台接收问题
    mybatis-plus简单了解
    二叉树基础知识
  • 原文地址:https://www.cnblogs.com/chenghu/p/5612102.html
Copyright © 2011-2022 走看看