我正在使用Java构建嵌入式JAX-WS SOAP服务。我正在使用javax.xml.bind
定义我的数据类型。
我在其中一个我想要隐藏的数据类型中有一个字段,因此在发布WSDL时它将受到支持但不可见。
我的动机是我们正在弃用属性,但我仍然会支持它(内容将被忽略和未使用)。在下面的示例中,如果用户在http://myservice?wsdl
访问WSDL,他们将看不到属性email
作为user
的一部分
我可以使用哪些注释来提供此功能?可替代地
@XmlType
public class User
{
@XmlElement
public String name;
@XmlElement
@Hidden (?)
public String email;
}
答案 0 :(得分:1)
我不知道告诉CXF忽略生成的WSDL中的元素的任何标准方法。一种选择是维护一个静态WSDL文件,然后手动删除" hidden"架构中的元素。您可以将该字段保留在JAXB注释类中。如果使用Spring配置服务,则可以使用wsdlLocation属性添加WSDL:
<jaxws:endpoint
wsdlLocation="classpath:/Service.wsdl">
</jaxws:endpoint>
请注意,包含&#34;隐藏&#34;的XML字段将不再验证,因此如果您对输入消息使用模式验证,则需要忽略这些错误。