我们有 SOAP Web 服务,我们的方法首先是 WSDL。下面您会看到从 wsdl 通过 wsdl 生成的请求对象到 pom.xml 中的 java 插件。这是请求对象的样子:
@XmlRootElement(name = "XXXRequest") 公共类 GetXXXRequest {
@XmlElement(name = "XXX", required = true)
@XmlJavaTypeAdapter(XX .class)
protected String x;
@XmlElement(name = "YYY", required = true)
@XmlJavaTypeAdapter(XX .class)
protected String y;
@XmlElement(name = "ZZZ", required = true)
@XmlJavaTypeAdapter(XX .class)
protected String z;
@XmlElement(name = "TTT", required = true)
@XmlJavaTypeAdapter(XX.class)
protected String t;
@XmlElement(name = "TypeOfRequest", required = true)
protected TypeOfRequest type;
@XmlElement(name = "Criteria", required = true)
protected Criteria criteria;
TypeOfRequest 是枚举。现在 TypeOfRequest 有 7 个值。让我们说用户发送除了在 TypeOfRequest 中为其定义的 7 个值之外的任何其他值,然后它作为 NULL 出现,我们的验证无法验证它是否用户真的没有选择任何 TypeOfRequest 或提供了其他值而不是 7 个值。所以简而言之,如果用户选择了 7 值以外的任何其他值,我想验证并发送有意义的消息。我无法实现它。有什么办法可以做到吗?我有一个想法,我可以拦截它,但需要指导来实施它。我们正在使用 cxf 、 jaxws 和 Spring 框架。