前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Axis调用Webservice添加SoupHeader

Axis调用Webservice添加SoupHeader

原创
作者头像
JQ实验室
发布2023-01-12 15:12:54
1.1K0
发布2023-01-12 15:12:54
举报
文章被收录于专栏:实用技术实用技术
Axis是啥:

Axis全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的,有java版的实现,也有c++版的实现,其前身最早是IBM的SOAP4J,后来捐给Apache后改名Apache SOAP,也就是支持SOAP1.1的那个版本,到现在的AXIS已经是第三代了,AXIS对Apache SOAP的改进有很多,比如用SAX代替以前的DOM,增加对WSDL的支持,支持SOAP1.2等等

Webservice

WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!指服务端程序和客户端程序可以在不同的操作系统上运行。

XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。

SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。

WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。

Axis调用Webservice步骤:
生成客户端代码:
在这里插入图片描述
在这里插入图片描述
soupheader是啥:

在Web Services方法进行通信使用SOAP遵循标准的SOAP格式,该格式的一部分是在XML文档中编码的数据。XML文档包含一个Envelope根元素(由必需的Body元素和可选的Header元素构成)。Body元素由特定于消息的数据构成。可选的Header元素可以包含不与特定消息直接相关的其他信息。

添加soupheader编码实现
代码语言:java
复制
import org.apache.axis.client.Stub;
import org.apache.axis.message.SOAPHeaderElement;

import javax.xml.namespace.QName;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPFactory;
  
    public static void axisCall() throws Throwable {
ISysWebServiceServiceLocator locator = new ISysWebServiceServiceLocator();
        ISysNewsToRMTWebService webService = locator.getISysNewsToRMTWebServicePort(new URL(wsdl));

        String namespaceURI = "http://sys.webservice.client";
      
              SOAPElement soapElement = SOAPFactory.newInstance().createElement("RequestSOAPHeader","tns",namespaceURI);
        SOAPElement soapElementUser = SOAPFactory.newInstance().createElement("user","tns",namespaceURI);
        soapElementUser.addTextNode("root");
        SOAPElement soapElementPwd = SOAPFactory.newInstance().createElement("password","tns",namespaceURI);
        soapElementPwd.addTextNode("12312");

        soapElement.addChildElement(soapElementUser);
        soapElement.addChildElement(soapElementPwd);
        SOAPHeaderElement auth = new SOAPHeaderElement(soapElement);
        ((Stub)webService).setHeader(auth);

        SysForm form = new SysForm();
        form.setCreator("123456");
        AjaxResult result = webService.findList(form);
        System.out.println(result.getMsg());
     }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Axis是啥:
    • Webservice
      • Axis调用Webservice步骤:
        • 生成客户端代码:
          • soupheader是啥:
            • 添加soupheader编码实现
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档