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

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

 2010-03-23 00:00:00 来源:WEB开发网   
核心提示: 添加类型 NetHeaderHandler.SoapHeaderHandler 的公共成员变量,插入 SOAP 头属性,利用 SOAP 头保持 EJB 状态:处理 VB.6 和 VB.NET SOAP 客户端中的状态(4),清单 5. 用 VB.NET 声明头的示例 PublicheaderVa

添加类型 NetHeaderHandler.SoapHeaderHandler 的公共成员变量。

插入 SOAP 头属性。

清单 5. 用 VB.NET 声明头的示例

Public headerValue As NetHeaderHandler.SoapHeaderHandler 

添加头属性

决定如何添加头属性并不容易,因为头属性不是由 Microsoft 良好文档化的,并且关于如何使用它们的可用示例很少。在大多数情况下,您将以看起来类似于 清单6的代码结束。

清单 6. 头属性的示例

System.Web.Services.Protocols.SoapHeaderAttribute("headerValue", _ 
Direction:=System.Web.Services.Protocols.SoapHeaderDirection.In, Required:=True), _ 
System.Web.Services.Protocols.SoapRpcMethodAttribute("", 
RequestNamespace:= 
"http://ibm.com/myarticle.myarticlecontrollers. TestControllerEJB", 
ResponseNamespace:= 
"http://ibm.com/myarticle.myarticlecontrollers. TestControllerEJB") 

创建此代码并将其保存为 NetProxies.dll。

在 VB.NET 中将序列化器作为头的一部分进行传送

一件您已经做过的并且可以作为最后的步骤的事情是——通过 .NET 客户端应用程序调用 J2EE 应用程序服务器(参见 清单7)。

清单 7. 用 VB.NET 创建的客户端代码的示例

Dim strURL as string 
strURL = "http://server1:9080/TestWebServices/servlet/rpcrouter"/" 
     
Dim oNetProxy As New NetProxies.ibm.com.TestControllerEJBService() 
oNetProxy.Url = gstrURL 
     
'invoke my controller and return it in serialized form 
Dim strSerializedTestController as string 
strSerializedTestController = 
oNetProxy.getSerializedTestController("John","password") 
     
Dim oNetHeaderHandler as New NetHeaderHandler.SoapHeaderHandler 
oNetHeaderHandler.HeaderValue = strSerializedTestController 
oNetProxy.headerValue = oNetHeaderHandler 
     
Dim strUserName as string 
strUserName = oNetProxy.getUserName() 

总结

本文介绍了如何连接到 J2EE 服务器应用程序(它使用有状态的会话 Bean 作为其体系结构的一部分)。为了调用这样的 Bean,您使用了 Visual Basic 6.0 Soap 客户端和 VB.NET Soap 客户端。此外,本文还列出了如何克服在使用 Microsoft Soap 客户端和 WebSphere Soap 服务器时出现的互操作性问题。

上一页  1 2 3 4 

Tags:利用 SOAP 保持

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