无法使 @webparam 强制字段 JAX-WS

Not able to make @webparam mandatory field JAX-WS

我正在尝试使用 (@XmlElement(required=true) 强制设置我的 @webparam,但生成的 XSD 仍然显示为 minOccurs="0"。还尝试设置 nillable=false 但仍然无效。

这是我的网络方法:

@WebMethod
@WebResult(name = "Biller")
public Biller getBiller(@XmlElement(required=true) @WebParam(name = "billerId") Integer billerId){}

求推荐。

正如我在评论中所指定的那样——要么你需要将你的 Integer 变量包装到一些 Java POJO 中并为该 POJO 中的特定字段应用规则,要么更改为原始类型,因为 - 引用类型始终是可选的,但包装器类型的构成字段可以是必需的或可选的。 原始类型始终是必需的。

Refer this answer

然后是关于默认值的问题 - 参考 Answers to this question 和摘要 - 如果没有指定 -

minOccurs and maxOccurs default to 1

现在为什么你的调用通过 SOAP 成功了 UI - 你的 xsd 是正确的并且 SOAP UI 承认了这一点所以我的猜测是客户端可能会在它的时候附加一些默认值丢失的。我没有使用过 SOAP UI。尝试检查您的请求并查看是否确实缺少值。如果请求中确实缺少值,则尝试检查验证未启动的原因。