当前位置:  开发笔记 > 后端 > 正文

Web服务期待DataSet对象,我如何通过ColdFusion或原始XML提供?

如何解决《Web服务期待DataSet对象,我如何通过ColdFusion或原始XML提供?》经验,为你挑选了1个好方法。

我需要调用用.NET编写的Web服务.进行调用的应用程序是用ColdFusion编写的.Web服务期望的参数之一是DataSet对象.我无法在ColdFusion中实例化.NET DataSet对象,如何将Web服务传递给它?我在原始XML中编写SOAP请求没有问题,我只是不知道DataSet对象的XML是什么样的.



1> ryber..:

.NET期望的所有对象都由Axis序列化并且可供您使用.不幸的是,ColdFusion并不容易实现.

要获得存根,您必须:

    使用coldfusion以任何方式访问WSDL.

    在CF app目录中查找存根.它们位于"subs"目录中,由WSDL.like组织:c:\ ColdFusion8\stubs\WS\WS-21028249\com\foo\bar \

    将"com"中的所有内容复制到CF类路径中存在的新目录中.或者你可以做一个像:c:\ ColdFusion8\MyStubs\com\foo\bar \

    如果您创建了一个新目录,请将其添加到类路径中.并重新启动CF服务.

    像任何其他java对象一样使用它们或者CreateObject()MyObj = CreateObject("java","com.foo.bar.MyObject");

您的数据集对象应该位于Axis决定应该使用的任何Java格式的某个位置.很可能你需要在cfscript中做几乎所有这些


编辑问题

SOAP对象将定义对象结构,Axis将创建用于操作它的方法.看一下轴创建的Java对象.请记住,您可以使用CFDUMP查看方法和属性.

现在我已经看到了Axis被混淆的.NET对象,比如变成"ArrayOfAnyType"的可怕的非泛型集合.对于.NET开发人员来说,在他们的服务中使用Generics是很重要的,这样Axis就可以正确地定义数组....如果他们不这样做那么它很糟糕,你可能无法用肥皂来处理它.

但是不要害怕被贬低......还有另一种方式.您始终可以使用XML/RPC类型的样式与.NET Web服务进行交互.它不是自动的,它很多手工解析XML,很糟糕,但有时它是唯一的方法.你应该能够通过在最后没有"?wsdl"的情况下点击.asmx文件从.NET获得一些帮助.如果你这样做,.NET将生成一堆文档以及调用和XML的样子.在这种情况下,您可以创建XML并通过使用cfhttp指定的线路传递它.祝好运!

PS我还应该注意,据我所知,没有办法将手动XML与ColdFusion/Apache Axis对象混合,也没有办法模拟自己的对象与CF/Axis一起使用...你必须使用存根或什么也没有

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有