ASP.NET调用JAVA的CXF生成的Webservice,并带有Soapheader验证的解决方案
来源:互联网 发布:mac清理垃圾桶快捷键 编辑:程序博客网 时间:2024/05/20 11:24
本文并不讲述怎么搭建CXF,网上相关资料比较多,不再赘述。
下面直接开始讲解在ASP.NET中怎么调用CXF生成的Webservice,并处理Soapheader验证。
1、添加web引用
注意,这里是添加web引用,不是添加服务引用。以vs2012为例,步骤如下:
[图1.1选择添加服务引用]
[图1.2点击高级按钮]
[图1.3点击添加web引用按钮]
[图1.4找到服务]
[图1.5添加成功]
2、代码编写
2.1、 添加一个类RequestSOAPHeader,继承SoapHeader
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services.Protocols;namespace AspnetCase{ public class RequestSOAPHeader : SoapHeader { public string username { get; set; } public string password { get; set; } }}
2.2、用记事本打开上面添加的web引用的Reference.cs文件,在服务定义中加入代码:
public RequestSOAPHeader RequestSOAPHeader { get; set; }
然后找到每个服务的定义位置,在方法上面加入:
[SoapHeader( "RequestSOAPHeader")]
例如我这里的接口方法getUserInfo:
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://readerInfo.webservice_new.library.adtech.com/", ResponseNamespace="http://readerInfo.webservice_new.library.adtech.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)][return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)][SoapHeader( "RequestSOAPHeader")]public user getUserInfo([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string arg0, [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] string arg1) { object[] results = this.Invoke("getUserInfo", new object[] { arg0, arg1}); return ((user)(results[0]));}
2.3、接口调用
在需要调用接口的页面引用上面的web引用:
using AspnetCase.MyWebReference;
实例化Soapheader
RequestSOAPHeader userHeader = new RequestSOAPHeader();userHeader.username = yourname;userHeader.password = yourpwd;
ReaderInfoWebserviceService myser = new ReaderInfoWebserviceService(); myser.RequestSOAPHeader = userHeader;
最后调用方法
myser.getUserInfo(username, userpwd).userName
例如我这里的:
protected void Page_Load(object sender, EventArgs e){ if (!Page.IsPostBack) { RequestSOAPHeader userHeader = new RequestSOAPHeader(); userHeader.username = "1"; userHeader.password = "1"; ReaderInfoWebserviceService myser = new ReaderInfoWebserviceService(); myser.RequestSOAPHeader = userHeader; Response.Write(myser.getUserInfo("q", "q").userName); }}
3、如果接口更新,需要重新更新web引用,则需要重复上面的 2.2 的步骤,所以总体来说使用比较麻烦。
另外如需更改命名空间可以参考文章:http://www.cnblogs.com/o2ds/p/4093413.html
1 0
- ASP.NET调用JAVA的CXF生成的Webservice,并带有Soapheader验证的解决方案
- # C# 调用java的WebService添加SOAPHeader验证
- Java调用带SoapHeader头验证的.net Webservice示例代码
- Java调用带SoapHeader头验证的.net Webservice示例代码
- C#静态调用带有SoapHeader验证的WebServices
- C#动态调用带有SoapHeader验证的WebServices
- c# 调用java webservice带有soapheader
- Asp.net页面中调用soapheader进行验证的操作步骤
- .net调用java xfire发布的webservice封装soapheader头信息
- Java调用C#带soapheader的webservice接口
- java调用带有header信息的.net webService
- android调用带soapheader的webservice
- webservice 应用的问题(vb6调用,soapheader)
- android调用带soapheader的webservice
- CXF生成调用webservice的客户端
- CXF生成调用webservice的客户端
- CXF生成调用webservice的客户端
- CXF生成调用webservice的客户端
- MySQL事务隔离级别详解
- ScrollView中嵌套GridView时显示不全
- 毛玻璃效果
- MFC 右键自定义菜单
- 从”JAVA“而终 21:Html讲解
- ASP.NET调用JAVA的CXF生成的Webservice,并带有Soapheader验证的解决方案
- 协方差的意义和计算公式、Code
- DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING
- AIR ANE应用添加KeyMob广告管理库详细教程
- IBM X335 RAID1 制作
- ListView添加头部之后出现位置获取错乱的问题解决方案
- RCNN物体检测
- Android 4.4 的 init 进程详解
- 一些iOS面试题2