java - 使用 JAX-WS 2.0 和 @WebService 为一项服务发布多个端口

标签 java web-services soap jax-ws

我想创建一个公开多个端口类型的 SOAP 服务,其中每个端口类型都有一个单独的接口(interface)。我正在尝试使用 JAX-WS 2.0 来执行此操作。

例子:

interface A:
    ObjectA get(String name);

interface B:
    ObjectB get(String name);

Service:
    port A
          get
    port B
          get

我遇到的问题是@WebService 是使用单个类/接口(interface)定义的,因此我能够设置它的唯一方法是拥有两个单独的服务。每个服务都由带有 @WebService 注释的单独类实现。

我想使用相同的服务公开两个端口,以明确它们都是同一 API 的一部分。这可能吗?

实际上,我所追求的是在 WSDL 中支持某种嵌套命名空间,这样我就可以在不同的命名空间中使用相同的方法。我将为不同类型的数据提供彼此相邻的 get/set/delete 方法,但我不想将它们全部放在与 getA/getB 等相同的大接口(interface)中,因为我希望能够稍后添加新的数据类型而不强制所有客户端从新的 WSDL 集重新生成。欢迎任何有关实现此目的的提示,即使这意味着使用另一种方法从 Java 代码生成 WSDL。

最佳答案

您可以尝试重命名其中一个方法,并在 @WebMethod 注释中显式设置 action 或 operationName 字段。

关于java - 使用 JAX-WS 2.0 和 @WebService 为一项服务发布多个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636630/

相关文章:

java - 将 JTextArea 放在特定位置

java - 将许多 vector 同步在一起

java - 在午夜运行服务而不启动应用程序

r - 无法通过 SSOAP 在 R 中使用 Web 服务功能

c# - 在 C# 中,在 DLL 中捕获 SOAP

java - 如何从另一个类访问用户定义的 List<> 值?

java - 使用 Internet Explorer 打开 Excel 文档时出现问题

web-services - 如何在 powershell 中创建由 webservice 工厂函数定义的对象?

java - 使用 spring Rest api

java - Soap 处理程序中入站和出站 xml 之间的关联