Web services WebLogic不验证minOccurs=";1“;在Web服务中

Web services WebLogic不验证minOccurs=";1“;在Web服务中,web-services,weblogic,xml-validation,Web Services,Weblogic,Xml Validation,我的WebService部署在WebLogic 10.3.3上 WSDL/XSD将输入参数number描述为必填项: MinOccurs=“1”意味着XML消息必须包含标记,不是吗 我希望WebLogic必须验证所有请求,当请求无效时,应该抛出服务器错误响应 不幸的是,我的SOAP客户端能够发送SOAP请求而不带标记,而我的webservice实现接收到这样一个无效的请求 请告诉我,这是正确的行为还是WebLogic中的缺陷 我的Web服务是否应该执行自己的XML验证?默认情况下,WebLog

我的WebService部署在WebLogic 10.3.3上

WSDL/XSD将输入参数
number
描述为必填项:

MinOccurs=“1”
意味着XML消息必须包含
标记,不是吗

我希望WebLogic必须验证所有请求,当请求无效时,应该抛出服务器错误响应

不幸的是,我的SOAP客户端能够发送SOAP请求而不带
标记,而我的webservice实现接收到这样一个无效的请求

请告诉我,这是正确的行为还是WebLogic中的缺陷


我的Web服务是否应该执行自己的XML验证?

默认情况下,WebLogic没有启用XSD架构验证。您可以通过向webservice@SchemaValidation添加注释来启用它(确保它是com.sun.xml.ws.developer版本,而不是com.sun.xml.ws.internal.developer)。但是,如果您有一个复杂的XSD模式(例如,GS-1 XSD模式有问题),这种验证就不能很好地工作。我认为这与weblogic使用的xercex xml文件解析器有关,因为它不能总是找到所有的元素,但是到目前为止我还无法找到它的底细。它适用于简单的模式

如果需要验证复杂模式,最好编写自己的验证器并将其添加到WS-Message处理程序中。这是一项相当大的工作,但您可以完全控制它,到目前为止,我还没有找到其他解决方案。

请查看我的答案,了解类似情况

如前所述,您可以使用提供的
@SchemaValidation
注释告诉WebLogic为您验证消息