我试图使用(@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中的特定字段或更改为原始类型,因为 - 参考类型始终是可以使包装类型的可选但组成域需要或可选。总是需要原始类型。
请参阅此答案
然后出现有关默认值的问题 - 为此,请参考此问题和摘要的答案 - 如果未指定任何指定 -
minoccurs和maxoccurs默认为1
现在,为什么您的呼叫使用SOAP UI成功 - 您的XSD是正确的,并且SOAP UI认识到这是我的猜测是客户端可能会在丢失时附加一些默认值。我没有使用肥皂UI。尝试检查您的请求,然后查看值是否真的缺少。如果请求中确实缺少值,请尝试检查为什么验证没有启动。