【问题标题】:wcf and java interopwcf 和 java 互操作
【发布时间】:2010-12-17 15:32:55
【问题描述】:

如何轻松地在 WCF 和 Java 应用程序之间进行互操作?

【问题讨论】:

    标签: java wcf


    【解决方案1】:

    WCF 是一个 Web 服务框架。 Java 还提供了自己的 Web 服务框架。它们应该能够很容易地进行互操作,但如果您想要更好的答案,您需要问一个更具体的问题。

    编辑:您询问的 ProjectTango 链接在第一段中说明了一切:

    ... 确保互操作性 企业功能,例如安全性, 可靠的消息传递和原子 交易。

    这些都是对基本 Web 服务的精美补充,仅凭规范不足以确保兼容性。

    我们 99.9% 的人都需要的基本 Web 服务交互在 WCF 和 Java 之间可以正常工作。

    【讨论】:

    • 我在谷歌上搜索过,我现在发现了这个案例的“Project Tango”。为什么要像你说的那么容易开发一个新项目?
    【解决方案2】:

    简短回答,是的。
    长答案,互操作性取决于几个因素。基本的互操作性非常容易。只有当您考虑安全等因素时,事情才会变得复杂。我们对可用的 Java Web 服务框架进行了一些研究,发现最适合我们场景的是 metro stack 以及 netbeans 6.5 IDE。我们使用客户端/服务器相互证书身份验证实现了项目强制要求的消息安全性。

    在此过程中发现的一些问题是:
    - 您必须从 netbeans 项目的 glassfish 目录中添加 webservices-rt.jar 库。 (不需要运行 glassfish,只需 jar 文件)
    - WCF 生成多文件 WSDL 文件,netbeans 无法使用它们生成代理,但如果将 netbeans 配置为使用 URL (http://../?wsdl),它可以生成代理。
    - 您必须将 [IsRequired=true] 放在 WCF 中的所有数据成员上。 Java 对可选数据成员的处理相当复杂。 - 作为数据成员的字典以列表形式出现

    【讨论】:

      【解决方案3】:

      我们已经在几个项目中成功地做到了这一点。我们使用 WCF basicHttpBinding,如果您只需要让它工作,这是最简单的选择。

      如果服务使用特定于平台的数据类型,如 Java 向量或 .net 数据集,则可能会造成影响。

      【讨论】:

        【解决方案4】:

        可以在 Java 端使用 JAX-WS 服务,然后在 .NET 中使用 WCF。

        首先创建 JAX-WS 服务(glassfish 库将允许您这样做)。创建您的 POJO,添加 JAX-WS 注释,并部署您的 WAR。然后,获取服务器生成的 WSDL 并将其提供给 VisualStudio。 VisualStudio 可以为您生成客户端。

        这是简单的方法,但你的里程当然会有所不同。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-01-20
          • 1970-01-01
          • 2010-10-16
          • 2012-06-27
          • 1970-01-01
          • 2010-09-06
          • 2010-09-21
          相关资源
          最近更新 更多