首先让我说这是一个不太理想的情况。我没有原始WSDL的副本来识别发生了什么变化;我也在与那些无法提供帮助的开发人员合作。我的应用程序是在Visual Studio 2010中开发的,它使用了用Java编写的服务端点。
我有一个带有服务引用的C#应用程序,会随意调用它的Widget。 Widget有一个方法DoWork,它接受四个参数,argument01,argument02,argument03& argument04。我生成的C#代码的方法签名是这样的
public DoWorkResponse DoWork(string argument01, int argument02, bool argument03, int argument04)
最近添加了一种新方法,我被告知要更新我的参考资料。当我这样做时,我的签名从上面改为:
public DoWorkResponse DoWork(DoWork DoWork1)
DoWork在哪里
partial class DoWork
{
string argument01;
int argument02;
bool argument03;
int argument04;
}
对不起,我无法提供原始代码,但大部分人都明白这是不可能的。
所以基本上我正在寻找一些关于java端可能发生什么变化以使Visual Studio以不同方式生成的信息。
提前致谢!
答案 0 :(得分:2)
可能SOAPBinding注释的parameterStyle
元素已更改,使参数样式裸露而不是包装。他们可以尝试将其添加到服务定义中:
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
他们的SOAP版本也可能已经改变。我不是Java Web服务的专家,但是this discussion提供了有关SOAP和Java Web服务的信息。
如果他们不能或不愿意在他们的最后进行这些更改,您可以控制客户端的绑定。见.NET Framework Support for SOAP Formats。基本上,您可以使用wsdl.exe使用其他命令行参数从WSDL生成类。
另一方面,他们的源代码是否有版本控制?当然,他们的历史将反映他们对他们的服务或参数做出了哪些改变。