3

我是一名 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 人员认为更改会在他的应用程序中导致其他调用客户端出现问题。

对此的任何帮助表示赞赏!

4

0 回答 0