4

我一直在研究 CXF 网络服务并且遇到了一些 麻烦。在 SO 的帮助下,我的服务验证了一个相当复杂的模式——项目的要求。但是,我注意到验证存在一些奇怪的问题。

当数据类型被验证时——例如,一个随机的字母数字字符串而不是一个日期被捕获并作为 SOAP 错误返回——长度和模式限制不是。如果 xs:string 的 maxLength 设置为 20,并且我输入 25 'a',则服务很乐意提供帮助。

我正在使用 2.2.7-SNAPSHOT - 由于快照解决了 2.2.6 中的另一个问题,我无法发布。有人有想法么?我在其他问题中发布了有关该项目的更多详细信息,但请告诉我配置文件或输出是否有帮助。

4

1 回答 1

4

我们在 IRC 上聊天,但出于记录目的,解决方案是在 jaxws:endpoint 上提供 wsdlLocation 属性,以便获取原始 wsdl(以及架构)。没有它,它会针对 jaxb 从类生成的模式进行验证。由于 JAXB 不记录长度方面等,因此这些方面将“丢失”,因此不会被验证。

于 2010-02-10T19:42:01.583 回答