我们使用“从 Java 开始”的方法来使用 Metro 1.5 堆栈创建 JAX-WS 2.0 Web 服务。当我们将像 SoapUI 这样的标准工具指向我们的一个 Web 服务时,它表明 WebMethods 的参数是可选的。生成的 xsd 显示 minOccurs=0。
我需要一种在“从 Java 开始”方法中使 WebMethod 参数成为必需的方法(可能是 xsd 中的 minOccurs=1)。我认为对此有一个 Java 注释,但我一直找不到。 XmlElement 注解具有必需属性,但 XmlElement 不能应用于 WebMethod 参数。
除了手动编辑 xsd 并将 minOccurs 设置为 1 之外,有没有办法让我的 WebMethod 参数成为必需?
最佳答案
我已经验证 Metro 2.0 确实允许您在参数上设置 @XmlElement(required=true)
。生成的 xsd 没有 minOccurs=0
。它将 minOccurs
排除在生成的 xsd 之外,因此它采用默认值 1。
您还必须通过将 JAX-WS 2.2 webservices-api.jar
放在 endorsed/
目录中来升级 JDK。
我发布了同样的问题 on the Java forums 。
感谢 jitu 的回答并指出 minOccurs 默认为 1,因此将其保留在 .xsd 之外具有预期的效果。
当在参数上设置@XmlElement(required=true) 时,SoapUI 不再指示该参数为可选。
关于java - 如何使 WebMethod 参数成为必需,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210346/