我在尝试使用我在JAX-WS中使用Java设置的Web服务时遇到了Delphi 2007问题。 Web服务可以很好地从另一个Java程序和C#/ ASP.NET 2.0网站上使用。但是,当我尝试使用Delphi 2007中的WSDL Importer(17-DEc-2007修补程序)访问相同的服务时,JAX-WS Web服务不会识别我传递它并将它们置之零的任何参数。Delphi 2007没有正确使用JAX-WS web服务
我检查了Delphi传递的SOAP消息,并将它与其他人进行了比较,它们几乎完全相同(除了一些可忽略的名称空间decs和.NET的一大堆视图状态! )
我也一直在网络上(最有帮助的链接是博士的http://www.bobswart.nl/Weblog/Blog.aspx?RootId=5:798),但没有喜悦。
有没有人遇到过这个?
TIA。
传奇仍在继续!
在使用HTTPRIO对象试图让它工作后,我最终放弃了并试图通过HTTP进行直接的XML传输。失败。
好的,所以我在C#中建立了一个简单的测试器,并尝试过。工作没问题。
使用Fiddler来查看向后和向前发送的内容,似乎唯一的区别在于命名空间。我改变了Delphi中的XML发送命名空间,并且......它的工作原理!
这是由WSDLImporter生成原始XML的一个样本:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<version xmlns="http://path.to.service.com/">
<input>test</input>
</version>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
,这里是什么实际工作:
<?xml version="1.0"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:version xmlns:ns2="http://path.to.service.com/">
<input>test</input>
</ns2:version>
</S:Body>
</S:Envelope>
所以,现在我知道这一点,我做我去更改WSDLImporter代码的名称空间值?我无法在HTTPRIO属性中看到任何明显的东西。
TIA
我可以验证注释掉该行是否解决了JAX-WS Web服务的问题。我无法验证许多啤酒的功效,但;-) – 2010-05-14 12:35:06