java - 如何使 WebMethod 参数成为必需

标签 java web-services jaxb jax-ws java-metro-framework

我们使用“从 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/

相关文章:

java - 安装java 64位但打开eclipse仍然出错

java - 如何在 Netbeans 上添加 facebook 作为 Web 服务

java - 从 XSD 生成 Java 异常/使用 JAXB2 绑定(bind)异常

wsdl - 如何自定义 JAX-WS 生成的 WSDL?

java - 使用CXF集成jaxb绑定(bind)文件生成基于WSDL的客户端

java - 优化 Primehunter 的运行时间

java - 尝试让简笔画在屏幕上移动,收到错误消息

java - 为什么java/android允许 boolean 变量和字符串之间按位&

c# - Azure 长时间运行的外部 Web 服务调用

javascript - Ajax 调用 Web 服务 - 方法成功但禁止数据访问