我使用 Metro 作为第三方 Web 服务引擎创建了 Web 服务,它部署在 glassfish 上。我使用 premetive 数据类型int作为参数。当我输入无效值(如字符串,null)时,它会将其作为默认值(0)。有什么办法可以限制吗?我想在 SoapUI 级别验证它并显示错误消息。
在 Axis2 中它是自动执行的,但在 Metro 中它不工作。是否有任何额外的注释?或任何其他方式来实现这一目标?
提前致谢。:-)
我使用 Metro 作为第三方 Web 服务引擎创建了 Web 服务,它部署在 glassfish 上。我使用 premetive 数据类型int作为参数。当我输入无效值(如字符串,null)时,它会将其作为默认值(0)。有什么办法可以限制吗?我想在 SoapUI 级别验证它并显示错误消息。
在 Axis2 中它是自动执行的,但在 Metro 中它不工作。是否有任何额外的注释?或任何其他方式来实现这一目标?
提前致谢。:-)
你的问题有两个方面。
一方面,您希望在 SoaUI 级别验证您的请求。默认情况下,它们未经验证并按原样发送到服务器。要启用验证,请选中 SoapUI 首选项(选项卡编辑器设置)中的两个框:
在这种情况下,SoapUI 会生成错误消息并将插入符号放在有错误的 XML 行上。
另一方面,您需要在 Web 服务端验证传入请求的正确性。从com.sun.xml.ws.developer.SchemaValidation添加@SchemaValidation注解,为您的服务启用此功能。Metro 为未通过 XML 架构验证的请求生成 SOAP 错误消息响应。