【问题标题】:Web services that implement the same interface实现相同接口的 Web 服务
【发布时间】:2011-02-09 12:27:29
【问题描述】:

我的朋友用 java 构建了一个 web 服务 我在.net中构建了一个

我希望他们实现相同的接口

然后在我的程序中将 web.config 更改为指向其中一个。

在我看来,这将通过实现相同的接口来完成。不知道它实际上会如何完成......

【问题讨论】:

  • 你可以查看 WSDL;对于使用原始类型的非常简单的接口,您可能会使其工作......

标签: java .net web-services interface


【解决方案1】:

也许最安全的方法是从 WSDL 生成接口。在 WSDL 文档中描述您的服务,然后使用“wsimport -d src WSDL_file”(在 Java 中)。

【讨论】:

    【解决方案2】:

    ASP.NET 和 Java Web 服务之间的细微差别将使这成为一项艰巨的任务。

    另一种方法可能是在它们前面创建一个adapter 服务,它公开相同的语义接口,并具有对两者的服务引用。

    此适配器服务可以配置为根据修改 web.config 的相同方法将命令传递给 Java 或 .NET。即:

    [WebMethod]
    public int AddTwoNumbers(int numberA, int numberB)
    {
        if(useJavaService)
            return javaService.AddTwoNumbers(numberA, numberB);
        else
            return dotnetService.AddTwoNumbers(numberA, numberB);
    }
    

    您的应用程序可以针对此包装服务,因此从您的应用程序的角度来看,您只需调用:

    int result = theService.AddTwoNumbers(5, 10);
    

    而您的应用程序将不知道它是要使用 Java 还是 .NET。

    【讨论】:

    • 这个适配器服务如何做客户端代码不能做的事情?在这两种情况下,您都在进行相同的函数调用。由于适配器上的额外处理轮次,您所做的只是减慢了速度。
    • 客户端可能会在很多地方调用 AddTwoNumbers - 而不是每次都重复服务解析登录,客户端能够专注于完成工作而不是担心底层服务管道。
    • 好的。把它放在客户端的一个实用方法中。不要在它前面扔一个网络服务器!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    相关资源
    最近更新 更多