2007年德尔福不能正确消费JAX-WS Web服务
题
我试图消耗我使用JAX-WS Java中建立一个Web服务时具有德尔福2007年的问题。 Web服务可以从另一个Java程序,并从C#/ ASP.NET 2.0的网站上消费的罚款。然而,当我尝试使用WSDL进口商在2007年德尔福(17-DEC-2007补丁)访问相同的服务,JAX-WS Web服务不承认任何我通过它和空值它们的参数。
我检查了多数民众赞成由德尔福过去了,相比它的其他SOAP消息,他们是几乎相同的(一些微不足道的命名空间DECS的例外和一大堆视图状态的从.NET一个!)
我也一直在网络上(最有用的一环是医生鲍勃的 http://www.bobswart.nl/Weblog/Blog.aspx?RootId=5:798 ),但没有喜悦。
有没有人遇到过这之前?
TIA。
在佐贺继续!
buggering关于与HTTPRIO对象,试图得到它的工作我最终还是放弃了,并试图通过HTTP直XML转让后。失败。
行,所以我建立在C#的简单测试仪和试过了。工作没有问题。
使用招,看看有什么正在发送向后和向前它似乎是唯一的区别是在命名空间。我改变了XML命名空间中发送Delphi和...它的作品!
这是由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
解决方案
HA的HA IT LIVES !!!
基本上我不得不取出推荐
InvRegistry.RegisterInvokeOptions(TypeInfo(ActivityService), ioDocument);
和强制它使用二段。 5编码。根据需要和参数传递给Java Web服务生成的命名空间。
右,需要啤酒,大量的啤酒:)
其他提示
您应该只是注释此行您的WSDL:
//InvRegistry.RegisterInvokeOptions(TypeInfo(WebService), ioDocument);
这就够了......享受。
不是你的问题的解决方案,但我已经用同样的环境下最近一直陷入困境。 我不得不改变的选项很多次,直到找到消费web服务的正确方法(在C#writen)。
检查:
- THTTPRIO.Converter.Options
- THTTPRIO.HTTPWebNode
- THTTPRIO.HTTPWebNode.InvokeOptions
我撞我的头靠墙两天,直到我发现这个职位...和Cesars提示检查THTTPRIO.Converter.Options ...我几乎尝试了一切,最后一个是soXXXXHdr设置为true - >然后发生了一些奇怪的事情,没有更多的空服务器:o ...
我不知道为什么这样的设置使价值经历,它只是做(至少对我来说)。
将是巨大的,如果有人究竟是谁明白发生了什么可以解释这一点。
这Converter.Options卸下soSendMultiRefObj帮助