Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 德尔福2009网络服务“;xml文档必须有一个顶级元素";_Web Services_Delphi_Delphi 2009 - Fatal编程技术网

Web services 德尔福2009网络服务“;xml文档必须有一个顶级元素";

Web services 德尔福2009网络服务“;xml文档必须有一个顶级元素";,web-services,delphi,delphi-2009,Web Services,Delphi,Delphi 2009,我今天用delphi 2009(应用了更新3/4)构建的各种delphi演示似乎都会导致我尝试使用的任何localhost web服务的客户端返回“xml文档必须有顶级元素”错误 例如,这甚至包括一个简单到 我错过了什么?这里怎么了?非常令人沮丧…您可能生成了错误的XML数据。 每个XML文档必须有一个顶级元素: <xml version=".."> <topLevelElement> <element> ... </element>

我今天用delphi 2009(应用了更新3/4)构建的各种delphi演示似乎都会导致我尝试使用的任何localhost web服务的客户端返回“xml文档必须有顶级元素”错误

例如,这甚至包括一个简单到


我错过了什么?这里怎么了?非常令人沮丧…

您可能生成了错误的XML数据。 每个XML文档必须有一个顶级元素:

<xml version="..">
<topLevelElement>
 <element>
   ...
 </element>
 <element>
   ...
 </element>
<topLevelElement>

...
...

如果缺少此根元素,反序列化程序将引发异常

尝试为HTTPSoapPascalInvoker设置以下选项。选项:

soRootRefNodesToBody
soUTF8InHeader
soUTF8EncodeXML

这很可能意味着由于加载SOAP库时出错或SOAP库本身出错而从服务器获得HTML响应。无法分析HTML并导致此错误


代理可以帮助您,但您可能想看看,因为它可以让您非常轻松地嗅探流量,而不仅仅是针对HTTP流量。

好的-这有点奇怪---

我发现这一切都在IIS下工作,但在apache上失败 (eed3si9n的解决方案在apache上不起作用)

更糟糕的是,我发现在apache下,我的基本cgi请求内容字段位于 POST在apache下是空的,但我只是在IIS下部署,它工作得很好

所以要么是我的apache安装造成的,要么是有什么问题 apache和delphi下的错误(肯定会被广泛报道和修复)

那么---有人知道我应该在这里看到什么样的apache配置选项吗


谢谢

您遇到的最可能的问题是apache模块上出现了问题,可能是您的cgi脚本在apache(HTTP 500)上导致了严重的内部服务器错误。结果,apache抛出了一个错误,但该错误是HTML格式的,而不是XML格式的。因此,如果您使用Web服务,您希望得到SOAP(即XML),但得到的是无法识别的HTML,因此您的应用程序可能会显示“XML文档必须具有顶级元素”之类的内容,或者在我的示例中显示“客户机找到的响应内容类型为TEXT/HTML,但需要TEXT/XML”。最糟糕的是,apacheerror.log不会显示任何内容,access.log只会显示500个错误(尽管我将其设置为调试模式)。
我用Wireshark来解决我的问题。我的发现证实了我上面的解释,但我还没有解决我的问题。

谢谢你的回复,但是,构建xml回复的机制是由delphi自动处理的,对吗?我的意思是,如果你看一下上面Pawel的例子,没有显式的xml构造,我肯定还缺少什么?