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" 属性:
name
:使用它来仅命名 spring 上下文中的 bean - 对待它与将 id
添加到 [=41] 没有区别=]豆。不需要命名空间或任何类型的前缀
serviceName
:这个名称应该来自 WSDL,作为 definitions
根元素的 name
属性的一部分。 这个 使用 QName 格式 - 你在这里的 {http://cxf.apache.org/}MyService
CXF API 将尝试匹配 SOAP 服务的 WSDL 中的内容你在消费。
TL;DR: 带有 URL 前缀的命名约定不属于 name
属性,而是属于 serviceName
属性及其值应该来自 WSDL 文件。
我在整个 Internet 上找到了以这种方式定义的 JAX-WS bean 的代码示例:
<jaxws:client name="{http://cxf.apache.org/}MyService" createdFromAPI="true">
这里的大括号到底是什么意思?
您可能需要具体说明您在哪里见过它,但从您在这里分享的内容来看,这似乎是对该命名约定的错误使用。 看,the schema for the Spring-CXF XML configuration document 支持两种类型的 "name" 属性:
name
:使用它来仅命名 spring 上下文中的 bean - 对待它与将id
添加到 [=41] 没有区别=]豆。不需要命名空间或任何类型的前缀serviceName
:这个名称应该来自 WSDL,作为definitions
根元素的name
属性的一部分。 这个 使用 QName 格式 - 你在这里的{http://cxf.apache.org/}MyService
CXF API 将尝试匹配 SOAP 服务的 WSDL 中的内容你在消费。
TL;DR: 带有 URL 前缀的命名约定不属于 name
属性,而是属于 serviceName
属性及其值应该来自 WSDL 文件。