利用 SOAP 头保持 EJB 状态:处理 VB.6 和 VB.NET SOAP 客户端中的状态
2010-03-23 00:00:00 来源:WEB开发网用 VB.NET 开发 SOAP 客户端
.NET 的一个有用的特征是创建代理的能力。您可以一次创建它们,在 API 发生改变时更新,然后交给客户端。不再序列化 WSDL 文件,并且不需要重新收集 WSDL 文件中的签名调用。另外,不需要使用 dds.xml 文件,因为所有的数据类型信息现在都包括在 SOAP 消息中。
就个人而言,我更喜欢使用 WSDL.exe 工具生成代理,因为它可以自动添加特性“Url”,这是非常方便的(此特性允许您动态指定以公开的服务的位置)。如果您需要将您的代理作为产品的一部分进行装载,这将是非常方便的。
用 VB.NET 实现头
用 .NET Web 实现头是非常简单的。编写头简化到只需创建从 SoapHeader 继承的类,再将表示头条目的公共变量 HeaderValue 包括进去就可以了,如 清单3所示。
清单 3. 用 VB.NET 实现的头示例
Imports System.Web.Services
Imports System.Web.Services.Protocols
Public Class SoapHeaderHandler
Inherits SoapHeader
Public HeaderValue As String
Public Sub New()
MyBase.New()
End Sub
End Class
在本例中,您可以将它保存为 NetHeaderHandler.dll。
创建和修改 Web 服务代理
在创建了 NetHeaderHandler.dll 之后,您就可以更改您用 WSDL.exe 创建的代理。用于生成您的代理的命令如 清单4所示(这条命令应该位于一行上)。
清单4. 生成代理的命令
wsdl /language:VB /namespace:ibm.com
http://server1:9080/MyTest/TestControllerEJBService.wsdl
一旦您创建了代理,就需要修改它们,以便将头信息包括进去。修改代理需要遵循两个步骤(同试参见清单 5和 6):
更多精彩
赞助商链接