赛捷软件论坛's Archiver

lynn.yu 发表于 2018-3-1 10:44

[PU9功能解说] 在PU9中自.net耗用X3 SOAP Web服务

在X3 PU9中经典版的SOAP web 服务运作的方式发生了几个变化。其中一个变化就是自浏览器中消除了web服务测速器。具体可以参见之前发布的“测试PU9中的Sage X3 SOAP Web服务”一文。

另一个变化则是通过.net耗用经典版SOAP web服务的方式。本文简要说明了我试图在PU9中准备.net应用程序以耗用X3 web 服务时遇到的障碍。


[b]WSDL[/b]

第一个变化就是.net项目中引用的wsdl文件。在X3之前的版本中,wsdl是作为一个Web引用添加至项目的,采用的格式类似于以下这种:
http://[x3server]:[port]/adxwsvc/services/CAdxWebServiceXmlCC?wsdl

而现在新的wsdl url采用的则是以下格式:
http://[x3server]:[port]/soap-wsdl/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC?wsdl

前往功能:管理→管理→Web服务→经典版SOAP Web服务,也可以找到这个url地址。

[attach]4258[/attach]

url地址显示在[描述]下方。要想获取完整的url地址,只需要在这个url地址前加上前缀“http://[x3server]:[port]/”。

[attach]4259[/attach]

一开始难住我的一点是:试图将第一种wsdl作为web索引添加至PU9时,这种wsdl也仍然是有效的,所以一切看起来都运作正常,但调用至X3 Web服务的.net程序将无法正常运作。


[b]身份验证[/b]

第二个变化就是身份验证方法了。在之前的版本中,X3的身份验证信息(用户名和密码)是包含在上下文内的。但在PU9中,用户名和密码不再包含在上下文内,但使用标准身份验证可以传递这些信息。

以下是一个向Web服务调用添加标准身份验证的示例。
•        创建一个自该wsdl继承类CAdxWebServiceXmlCCService的类,起名为BasicAuth。这个类中的方法GetWebRequets将标准身份验证信息添加至了web请求的表头。
[attach]4260[/attach]

•        Web Service调用被实例化为一种BasicAuth类型,就是上述创建的那个类。  
[attach]4261[/attach]

•        Credentials证书被添加至了Web Service。
[attach]4262[/attach]

•        Web service的调用方法与在X3之前版本中的调用方法相同。


[b]步骤概述[/b]

以下概述了自.net程序在PU9中调用经典版SOAP Web服务所需的步骤:
•        将X3 wsdl作为一项Web索引添加至.net项目。(添加服务引用 – 高级 – 添加Web引用。)
[attach]4263[/attach]

•        创建一个类,以便将标准身份验证添加至SOAP请求的表头。
[attach]4264[/attach]

调用web service。以下是一个示例。参数会因被调用的类型(对象vs.子程序)和被调用的操作的不同而有所不同。下面的示例是一个发布为web service的X3子程序。

[attach]4265[/attach]


[b]总结[/b]

尽管在PU9中调用经典版X3 Soap Web服务的基本方法是相同的,但仍有几个方面必须更改,才能成功地集成来自.Net的Web服务调用。这篇文概述了基本的变化,还包括了一些示例。希望这会帮助你避免遇到我在X3 PU9中集成经典版SOAP Web服务时遭遇的困难。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.