2009-01-06 41 views
0

我正在使用WCF作为java web服务的客户端。我没有控制服务器端。修复WCF中有问题的服务器响应

在我从Web服务获得的响应中,肥皂标题中的第一个元素没有xmlns属性。由于此WCF由于Web服务调用而返回null。

除了丢失的xmlns,响应是完美的,如果我使用fiddler添加xmlns,那么一切都按预期工作。我对SOAP知之甚少,不知道xmlns属性是否真的需要。

有没有办法来避免这个问题,要么让WCF忽略缺失的xmlns属性,甚至一个钩子,让我手动Munge时间响应它到达之前WCF?

回答

2

这似乎是一个相当古老的问题,所以我不知道你是否曾经解决过这个问题。如果您正在使用WCF客户端来访问Java Axis服务,您会发现您需要习惯使用MessageInspectors来覆盖请求和响应的行为。

使用AfterReceiveReply方法,你应该能够copy the original message并改变头。也检查出Step 5 from this MSDN article

就我所见,不能直接在此方法中更改响应头,因为它们是只读的,因此,复制然后用篡改版替换回复是我能想到的唯一方法纠正缺少的命名空间。