JAX-WS 和大括号语法

JAX-WS and curly braces syntax

我在整个 Internet 上找到了以这种方式定义的 JAX-WS bean 的代码示例:

<jaxws:client name="{http://cxf.apache.org/}MyService" createdFromAPI="true">

这里的大括号到底是什么意思?

您可能需要具体说明您在哪里见过它,但从您在这里分享的内容来看,这似乎是对该命名约定的错误使用。 看,the schema for the Spring-CXF XML configuration document 支持两种类型的 "name" 属性:

  1. name:使用它来仅命名 spring 上下文中的 bean - 对待它与将 id 添加到 [=41] 没有区别=]豆。不需要命名空间或任何类型的前缀

  2. serviceName:这个名称应该来自 WSDL,作为 definitions 根元素的 name 属性的一部分。 这个 使用 QName 格式 - 你在这里的 {http://cxf.apache.org/}MyService CXF API 将尝试匹配 SOAP 服务的 WSDL 中的内容你在消费。

TL;DR: 带有 URL 前缀的命名约定不属于 name 属性,而是属于 serviceName属性及其值应该来自 WSDL 文件。