扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
ATL服务器结构一个重要的部分是它非常适合于高效处理XML Web 服务请求。因为此模板库扩展到了支持XML Web服务,这样就使企业能够快速而有效的将企业逻辑作为XML Web服务暴露。使用Disco文件,ATL 服务器 Web服务容易通过SOAP/XML协议发布和定位。ATL服务器Web服务通过HTTP协议能被运行在任何平台上的任何语言调用。这将编程能力通过防火墙扩展到了远程客户端。
在ATL中创建XML Web服务
选中ATL服务器应用程序向导中的"作为Web服务创建"复选框(在"应用程序选项"中)者使用"ATL 服务器Web服务工程"向导,就可以在ATL服务器中创建XML Web服务。(注意,"ATL 服务器Web服务工程"向导运行"ATL服务器工程"向导,只是"作为Web服务创建"复选框默认是选中的。)
图 1. ATL 服务器 Wizard 复选框
"作为Web服务创建"复选框生成标准的带名为"HelloWorld"的默认XML Web服务的ATL 服务器应用程序。HelloWorld函数演示了如何创建基本的ATL 服务器Web服务。
调用 XML Web 服务
一旦XML Web服务发布到了Web服务器上,就可通过HTTP结对它进行调用,并通过XML与服务交换数据。任何支持作出HTTP请求的语言都能调用XML Web服务,而不管此服务是用什么语言实现的,或不管它运行在什么样的平台上。Visual Studio .NET 有一个增加Web参考对话框,它使开发人员能快速而方便地使用XML Web服务。
你可以从喜欢的任何类型的应用程序调用XML Web服务。在下面的例子中,我们将用Win32控制台应用程序中的增加Web参考对话框,介绍访问XML Web服务的步骤。
首先,向方案中增加Win32(空)控制台应用程序(或如果没有打开方案,创建一个新的Win32控制台应用程序)。
在方案管理器中,右击新创建的工程,选择"增加Web参考"。出现增加Web参考对话框。输入在服务器上部署的disco文件(随ATL服务器Web服务自动创建和部署的文件)的位置。你可参考下面的对话框。如果输入了先前创建的XML Web服务的位置,并单击绿色小箭头,对话框将找出XML Web服务,并且在对话框底部的"增加参考"按钮将激活(见下面的图)。
对话框将消失,并且不会再发生什么事。然而,如果你在新工程上右击,然后选择增加->已有项目,你会在XML Web服务客户端的目录中发现一个新生成的文件(按XML Web服务命名,如Project1.h)。这个文件是由增加Web参考对话框(通?quot;sproxy"命令行应用程序)生成的代理,而且,当包含在文件中时,它使你能方便地访问XML Web服务。这就旬作出标准的方法调用一样。
下面是一个使用Project1 XML Web服务的控制台应用程序示例:
define _WIN32_WINDOWS 0x0403 define _WIN32_WINDOWS 0x0403 #include "project1.h" #include int main(void) { |
/*此处创建由代理生成的类的实例。如果我们查看代理的代码,就会发现它在类CProject1Service(从CsoapSocketClient中继承)中封装了HelloWorld方法。*/
CoInitialize(NULL); CProject1Service svc; CComBSTR bstrIn(L"World"); CComBSTR bstrOut; |
/*此处调用XML Web服务,你可以看到, 不用告诉代理它正在调用的是XML Web服务,代理会为我们处理这些事情。 */
svc.HelloWorld(bstrIn, &bstrOut); wprintf(L"The output string is %s\n", bstrOut); } |
总结
通过下一代的Visual Studio工具,微软将极大地削减速创建可编程的XML Web服务的复杂性。这些服务构建在工业标准的Internet协议上,包括HTTP和XML,以提供令人振奋的企业机遇。使用ATL服务器,C++开发人员能方便地创建功能强大的高性能的XML Web服务,以平衡 Internet的需求。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者