.NET客户端调用Java Web服务-(如何更改根名称空间)
当前,我们有一个Java Web服务,我们正在尝试通过.NET客户端连接。这些都是通过SSL完成的。是否有任何众所周知的陷阱,因为这似乎是一个又一次地出现的问题。我应该寻找的最知名的陷阱是什么?
Java Web服务是SOAP / WSDL。没有像WS-Security这样的WS- *扩展。
好的,这是我要解决的确切问题:
我们获得了一个Java Web服务,可以从Cclient进行调用。我将问题归结为Java Web服务期望Cclient无法生成的某些经过修改的xml。 Java Web服务期望遵循以下原则:
<?xml version =" 1.0" encoding =" UTF-8"吗?
<iAttr:MyObject1 xmlns =" iAttr" xmlns:iAttr =" http://www.foo.com/WS">
<iAttr:MyObject2 xmlns =" isum" xmlns:isum =" http://www.foo.com/WS">
<iAttr:OrderId> 1001027892 <
/ isum:OrderId`>
问题是,我的客户端生成的xml / SOAP内容是这样的:
<?xml version =" 1.0" encoding =" UTF-8"吗?
<iAttr:MyObject1 xmlns =" iAttr" xmlns:iAttr =" http://www.foo.com/WS">
<MyObject2>
<OrderId> 1001027892 <
/ OrderId`>
注意:Cversion中缺少" iAttr"。
问题:如何在Cto中有问题地添加属性以匹配Java WS期望的属性?
解决方案
好吧,如果我们以"正确"的方式编写服务,那么就不会有任何问题,至少不会出现语言互操作的问题。
我没有写服务。这是奇怪的事情:
进行相同Web服务调用的Java客户端可以完美地工作。
但是,进行完全相同的Web服务调用的.NET客户端中断。