asp.net - Web 服务需要一个 DataSet 对象,我如何通过 ColdFusion 或原始 XML 提供该对象?

标签 asp.net web-services soap coldfusion

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

最佳答案

.NET 所需的所有对象均由 Axis 序列化并可供您使用。不幸的是,ColdFusion 并不容易使用。

要获取 stub ,您必须:

  1. 通过 Coldfusion 以任何方式访问 WSDL。
  2. 在 CF 应用程序目录中查找 stub 。他们在“替补”中 目录,由 WSDL.like 组织: c:\ColdFusion8\stubs\WS\WS-21028249\com\foo\bar\
  3. 将从“com”开始的所有内容复制到以下位置的新目录中 CF 类路径。或者你可以做一个像: c:\ColdFusion8\MyStubs\com\foo\bar\
  4. 如果您创建了一个新目录,请将其添加到类路径中。并重新启动CF服务。
  5. 像使用任何其他 Java 对象一样使用它们或 CreateObject() MyObj = CreateObject("java","com.foo.bar.MyObject");

您的数据集对象应该以 Axis 决定的任何 java 格式存在于某处。您很可能需要在 cfscript 中完成几乎所有这些操作

<小时/>

编辑问题

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

现在我已经看到了 Axis 所困惑的 .NET 对象,比如可怕的非泛型集合变成了“ArrayOfAnyType”。对于 .NET 开发人员来说,在他们的服务中使用泛型非常重要,这样 Axis 就可以正确定义数组......如果他们不这样做,那就很糟糕,您可能无法在soap中使用它。

但是不要害怕奥比元……还有另一种方法。您始终可以以 XML/RPC 类型的方式与 .NET Web 服务交互。它不是自动的,需要大量手动解析 XML,这很糟糕,但有时这是唯一的方法。您应该能够通过打开末尾不带有“?wsdl”的 .asmx 文件来从 .NET 获得一些帮助。如果您这样做,.NET 将生成一堆文档和示例,说明调用和 XML 的外观。在这种情况下,您只需创建 XML 并使用 cfhttp 按照指定的方式通过线路传递它。祝你好运!

附注我还应该注意到,据我所知,没有办法将手工制作的 XML 与 ColdFusion/Apache Axis 对象混合在一起,也没有办法为您自己的对象建模以与 CF/Axis 一起使用...您必须使用 stub 或什么都没有

关于asp.net - Web 服务需要一个 DataSet 对象,我如何通过 ColdFusion 或原始 XML 提供该对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758143/

相关文章:

c# - 如果异常不为空,则 Nlog 输出字符

asp.net - 同一解决方案中的项目之间如何共享类?

asp.net - Glass Mapper 打破了图像场的标准值

android 如何发送 int 和 double 作为 namevaluepair 作为 http post

Java : Send Multipart File to RESTWebservice

java - 关于创建简单网络服务的建议

javascript - 如何在 JavaScript 中动态地将具有特定类的 <strong> 标签添加到 <div> 中

java - 更改 AXIS 和 cxf web 服务的日志级别

python - 通过 SOAP 访问 ISI Web of Science

xml - ColdFusion XmlSearch() : XPath with namespaces