gpt4 book ai didi

java - SOAP 服务中不可见或隐藏的 XML 元素

转载 作者:行者123 更新时间:2023-12-01 12:32:56 25 4
gpt4 key购买 nike

我正在使用 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;

}

最佳答案

我不知道有什么标准方法可以告诉 CXF 忽略生成的 WSDL 中的元素。一种选择是维护静态 WSDL 文件,然后手动从架构中删除“隐藏”元素。您可以将该字段保留在 JAXB 带注释的类中。如果您使用 Spring 配置服务,则可以添加带有 wsdlLocation 属性的 WSDL:

<jaxws:endpoint 
wsdlLocation="classpath:/Service.wsdl">
</jaxws:endpoint>

请注意,包含“隐藏”字段的 XML 将不再验证,因此如果您对输入消息使用架构验证,则需要忽略这些错误。

关于java - SOAP 服务中不可见或隐藏的 XML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25800659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com