WEB开发网
开发学院软件开发Java 利用 SOAP 头保持 EJB 状态:处理 VB.6 和 VB.NET... 阅读

利用 SOAP 头保持 EJB 状态:处理 VB.6 和 VB.NET SOAP 客户端中的状态

 2010-03-23 00:00:00 来源:WEB开发网   
核心提示:Web 服务不仅在软件开发界非常流行,而且在用户中也是如此,利用 SOAP 头保持 EJB 状态:处理 VB.6 和 VB.NET SOAP 客户端中的状态,在日益全球化的今天,共享信息已经变得越来越重要,如 清单1所示,在本例中,大的公司需要把它们的 VB 或 .NET 应用程序与合作伙伴的 J2EE 引擎连接在一起

Web 服务不仅在软件开发界非常流行,而且在用户中也是如此。在日益全球化的今天,共享信息已经变得越来越重要。大的公司需要把它们的 VB 或 .NET 应用程序与合作伙伴的 J2EE 引擎连接在一起。Web 服务为软件跨不同的平台和编程语言进行互操作提供了方法。但具有讽刺意味的是,由于不同厂商之间的 Web 服务实现存在着差异,互操作性还没有完全实现。另外,SOAP 并不保持状态,这使得完成互操作性的任务更加具有挑战性。状态的概念与 J2EE 服务器应用程序的关系尤其密切,J2EE 服务器应用程序常常把它们的业务流程作为有状态会话 Bean 公开。尽管如此,互操作性还是可以实现的,并且可以利用 SOAP 头并借助于序列化的魔力来保持状态。本文将重点介绍连接 VB 和 .NET 桌面客户端中的有状态会话 Bean。

用 VB 6.0 开发 SOAP 客户端

用 VB 开发 SOAP 客户端需要安装 Microsoft SOAP 类型库,这个库可以从 Microsoft 网站下载。在接下来的例子中,我使用了 Microsoft Soap Toolkit 3.0。Microsoft SOAP 类型库不包括 SOAP 头实现,而只是一个接口。

在 VB 6.0 中使用 Microsoft SOAP 类型库实现 SOAP 头

有一种方法可以创建单独的 DLL(仅包含 SOAP 头实现),并且将该实现装载到作为产品一部分的客户端中,如 清单1所示。在本例中,您可以调用 DLL VBHeaderHandler.dll。

清单1. 用 VB 实现的头示例

Implements IHeaderHandler 
Option Explicit 
Public HeaderValue As String 
Private Function IHeaderHandler_readHeader( 
  ByVal par_Reader As MSSOAPLib30.ISoapReader, 
  ByVal par_HeaderNode As MSXML2.IXMLDOMNode, 
  ByVal par_Object As Object) As Boolean 
  IHeaderHandler_readHeader = False 
End Function 
Private Function IHeaderHandler_WillWriteHeaders() As Boolean 
  IHeaderHandler_WillWriteHeaders = True 
End Function 
Private Sub IHeaderHandler_writeHeaders( _ 
  ByVal pSerializer As SoapSerializer30, _ 
  ByVal pObject As Object) 
  pSerializer.StartHeaderElement "SoapHeaderHandler", "http://www.ibm.com" 
  pSerializer.StartElement "SoapHeaderHandler" 
  pSerializer.WriteString HeaderValue 
  pSerializer.EndElement 
  pSerializer.EndHeaderElement 
End Sub 

1 2 3 4  下一页

Tags:利用 SOAP 保持

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接