我是一名 C# 开发人员,正在从事一个项目,我需要调用一个 Java Web 服务,该服务期望一个 Long 值作为我传递给方法的对象的属性。它看起来像这样:
public long routeDocument(long sDocID, string sRoutee)
{
DREService.QueueDocument newQDoc = new DREService.QueueDocument();
newQDoc.documentId = sDocID;
newQDoc.routee = "tracyr";
DREService.dre oSoapClient = new DREService.dre { Url = _URI };
try
{
oSoapClient.createQueueDocument(ref newQDoc, null);
}
catch (Exception ex)
{
//return "ERROR: " + ex.Message;
}
return newQDoc.id;
}
话虽如此,当我单步执行代码并查看对象属性“newQDoc.documentId”时,它已正确设置,但在 Fiddler 中,该属性根本没有显示在帖子中,Java 服务从未收到它。我们写了一个小测试工具,我们有同样的问题。我猜.net 不知道如何处理复杂类型 Long,并且服务的 xsd 将其定义为 long,因此它试图将 long 数据类型发送到 Long 复杂类型。我的问题是有没有一个技巧可以将.net 的 long 发送到 Java 中的 Long?(请记住,两个开发人员都在内部,所以如果需要在 Java 端进行更改,我们也可以这样做)。
我们已经将测试工具集更改为 long 并且它确实将它正确地装箱为 Long 但是 Java 人员认为更改会在他的应用程序中导致其他调用客户端出现问题。
对此的任何帮助表示赞赏!