axis2设置soap1.1或soap1.2协议

现在Axis、Axis2都是同时支持SOAP1.1和SOAP1.2的。即在服务器端发布一个WebService服务之后,客户端既可以通过SOAP1.1版本来访问服务器的服务,也可以通过SOAP1.2版本来访问服务器的服务。
    如果客户端不指定SOAP版本,则无论是用Axis还是Axis2编写的客户端,默认使用的都是SOAP1.1版本,如果某个服务端仅支持SOAP1.2的,则在服务的交互过程中会报错。因此较好的办法是事先知道服务器端所支持的SOAP版本,或者通过判断服务器端的SOAP版本,来确定使用哪个版本的SOAP发送请求。
    以下将客户端指定的SOAP协议版本代码整理一下,以备以后查阅。
Axis:
    org.apache.axis.client.Service service = new org.apache.axis.client.Service();
    org.apache.axis.client.Call call = service.createCall();
    //默认版本为SOAP1.1
    //以下设置为SOAP1.2
    call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
    //以下设置为SOAP1.1
    call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
    //其他设置和调用代码
    //call.setXXX(...)
    //call.invoke(...)
Axis2:
    org.apache.axis2.rpc.client.RPCServiceClient serviceClient = new org.apache.axis2.rpc.client.RPCServiceClient();
    org.apache.axis2.client.Options options = serviceClient.getOptions();
    //默认版本为SOAP1.1
    //以下设置为SOAP1.2
    options.setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
    //以下设置为SOAP1.1
    options.setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
    //其他设置和调用代码
    //options.setXXX(...)
    //serviceClient.invokeBlocking(...)

通过wsdl2java 命令 生成的stub客户端 设置soap协议
    //以下设置为SOAP1.2
    options.setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
xxxStub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
    //以下设置为SOAP1.1
xxxStub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

时间: 2024-10-12 10:04:45

axis2设置soap1.1或soap1.2协议的相关文章

Soap1.1和Soap1.2的区别

WebService通过HTTP协议完成远程调用: (深入分析) – RPC WebService只采用HTTP POST方式传输数据,不使用GET方式; -- 握手,WSDL-get, ?普通http post的contentType为 ?application/x-www-form-urlencoded ?WebService的contentType为-即在Http的基础上发SOAP协议 ?text/xml 这是基于soap1.1协议. ?application/soap+xml 这是基于s

soap1.1与soap1.2

1.soap1.2 如果加上jar包后,项目启动报错,有可能是jar包没起作用, 解决方法:把jar包移除,重新加入jar包 TCP/IP Monitor监测到的内容: soap1.2请求与soap1.2响应(划红线的地方为变化的内容) 2.soap1.1与soap1.2的区别 原文地址:https://www.cnblogs.com/curedfisher/p/11854617.html

SOAP1.1 VS SOAP1.2

SOAP提升: 目前WebService的协议主要有SOAP1.1和1.2.两者的命名空间不同. 见下页对比 SOAP1.1版本与SOAP1.2版本在头信息上存在差异.SOAP1.1存在SOAPAction的请求头.SOAP1.2没有SOAPAction的请求头.基于SOAP1.1生成的WSDL和基于SOAP1.2生成的WSDL也不一样. 主要看命名空间 在CXF中两种协议请求的方式也不一样.1.1为content-Type:text/xm;charset=UTF-81.2为content-Ty

设置HTTP代理后,HTTP协议头的不同之处

由于项目需要,最近热衷于研究HTTP代理相关技术. 众所周知,用户在设置了浏览器的代理之后,再打开浏览器,输入网址,点击回车之后,浏览器会自动地将http请求数据包发往代理服务器.很明显地,这期间,ip地址会发生改变,这种改变属于网络层需要处理的事情,也就说浏览器负责了这部分的工作. 那么应用层的HTTP协议头会不会有什么变化呢,到底哪个协议头表明了用户是设置了代理呢?怀着这样的疑问,我翻开了HTTP协议的经典巨著<HTTP:The Definitive Guide>一书.(PS:这本书是bo

soap1.1与soap1.2区别

Objective-C:在类中设置不同协议

在下面的代码中,设置了两种不同的协议规则:一种是老师对学生设置的协议:即老师发出命令后,学生站起来.回答问题.坐下; 另一种是我对学生设置的协议:即学生按照我的协议中的初始化函数去初始化一个整数. //我设置的协议Myprotocol,里面有我设置的协议规则(属性.函数)作为一个单独的文件 1 // Myprotocol.h 2 // 协议 3 // 4 // Created by ma c on 15/8/12. 5 // Copyright (c) 2015年 bjsxt. All righ

webservice的Axis2入门教程java版

本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring.JSON等技术.这些都将在后面的系列教程中讲解.在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService. 一.Axis2的下载和安装 读者可以从如下的网址下载Axis2的最新版本:

iOS--对接soap协议接口

最近在对接soap协议接口,分别使用AFN和系统自带方法进行解析.soap协议具体是什么就不阐述了,可以自行百度. 说一下需要注意的地方: 1,iOS与soap协议接口对接,参数要传xml格式的字符串,具体格式看接口说明,务必保持一致: 2,soap1.1和soap1.2使用思路是一样的,但是设置的参数不一样,具体看代码: 3,soap协议的返回值也是xml格式的,需要进行xml解析,获取需要节点下的数据(这里强调一点,可以根据某个节点获取需要的数据,但是也可以不管xml的节点,直接通过根节点获

Axis2/c 知识点

官网文档:  http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html 从文档中可以总结出: 1. Axis2/C是一个用C语言实现的Web Service引擎.Axis2/C基于Axis2架构,支持SOAP1.1和SOAP1.2协议,并且支持RESTful风格的Web Service.基于Axis2/C的Web Service可以同时暴露为SOAP和RESTful风格的服务. 2. 构建Axis2/c服务的基本步骤: *Implem