JBoss - 防止 WSDL 分裂

JBoss - Prevent WSDL splitting

我正在 JBoss 的 SOAP WS 项目中工作。为了定义 SOAP 操作,我用 @Local 和 @WebService 注释我的 Java 类,用 @WebMethod 和 @WebResult.

注释我的方法

WSDL 文件由JBoss 自动生成。我可以自定义 WSDL 的某些方面: https://docs.jboss.org/author/display/JBWS/Published+WSDL+customization

JBoss 将 WSDL 拆分为几个文件。 'main' WSDL 使用 标签来包含其他文件。

我的 Web 服务在内网和外部使用。我的 WS 的 'internal' 主机名与其​​ 'external' 主机名不同。由于 JBoss 为 WSDL 导入生成完整的 URL 链接,为了确保我的 WSDL 有效,我必须使用 'wsdl-host'.[= 覆盖 URL 的主机名12=]

我不得不在 wsdl-host 中使用外部 URL 以允许内部和外部系统工作。因此,所有内部 SOAP 客户端都使用外部 URL 获取包含的 WSDL 部分。如果外部代理因某种原因关闭,我的内部客户端将无法使用 WS,因为它们无法加载 WSDL。

有没有办法防止 JBoss 将 WSDL 拆分为多个文件,或者强制它使用相对路径而不是 中的完整 URL标签?

给出的答案 here 通过在主 WSDL 中内联其他 WSDL 文件来防止 WSDL 分裂。我可以确认它有效。为此,我在所有 @WebService 注释中使用了相同的 targetNamespace

@WebService(targetNamespace="<your namespace here>")