【问题标题】:Problem - Java Web Service Consumed by .NET问题 - .NET 使用的 Java Web 服务
【发布时间】:2011-05-25 04:05:38
【问题描述】:

我在使用 .NET 的 Java Web 服务时遇到问题。我能够向网络服务器提供输入,但无法取回结果。结果是一个自定义对象,它是用 Java 创建的,具有一个长、一个短和一个字符串变量。但是我从 .NET 得到的输出是 long 和 short 始终默认为 0,字符串默认为空字符串。任何指针都应该不胜感激。

此外,当我以纯 int 形式返回时,它工作正常。

问候, 比杰什

【问题讨论】:

  • 您使用的是哪种网络服务?肥皂?休息?
  • 您能发布您的 WSDL 和 SOAP 调用 XML 的 sn-p 吗?

标签: java .net web-services


【解决方案1】:

听起来你的 WDSL 坏了。是什么创造了它?

【讨论】:

  • 它是在 websphere 服务器中使用 RAD 7 和 Axis 版本 1.3 创建的
  • 那么你的WDSL是自动生成的,完全是最新的?
  • 是的。但是如果我使用整数返回而不是这个对象,我会得到返回。
【解决方案2】:

Scott Hanselman 刚刚写了一个 blog entry 处理从一个未命名的(但可能是基于 java 的)Web 服务消耗一些草率的 wsdl 文件。

他在解决问题时取得的进展可能适用于您的问题,因此我建议您通读一遍,看看哪些部分与您的问题相关。

您很可能需要修改 wsdl 以使 .Net 存根的自动生成工作。

【讨论】:

  • 谢谢。我将解决这个问题。这里的重点是我能够取回本机数据类型,但自定义对象不能。
【解决方案3】:

我希望看到一些 WSDL 和调用示例,但我会继续对您遇到的问题做出一些假设。 :) 我过去在 Java 和 .Net SOAP 互操作性方面遇到过问题。顺便说一句,我使用的是 Axis 1.4。

我的特殊问题与空的命名空间有关;例如,... 这意味着 someElement 不是其父命名空间的一部分。 (更多信息here。).Net SOAP 客户端(至少在过去)遇到过此类元素的问题。经过一番挖掘,我在轴用户邮件列表中找到了workaround。这对我们有用。也许它会帮助你。

这里有一些其他的尝试。

  • 切换到 WSDL 优先开发。 :)
  • 将 dotNetSoapEncFix 参数设置为真 Axis 的 .wsdd 文件。这提高了与 .Net 在数组方面的互操作性。
  • 在 Axis 端写一些 customized serialization 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多