如何解决Spring XML与XML签约尝试根据请求指定模拟
在大多数情况下,我可以通过元素content-type及其内部的值指定模拟。我正在将它与xpath连接起来,一切都进行得很好。但是现在我有了一个案例,在wsdl中,每个xsd都具有相同的内容类型。我不知道如何创建特定的模拟条件。我猜这个URL内每个xsd中唯一不同的是根元素。你有什么解决办法吗?您是否认为可以根据请求根元素指定模拟,如何执行?这是我合同的例子
Contract.make {
request {
priority(1)
method 'POST'
url '/ws/xxxx/xxx'
body(new MatchingStrategy(anyNonEmptyString(),MatchingStrategy.Type.MATCHING))
bodyMatchers {
xPath("//*[local-name()='Chnl']/text()",new MatchingTypeValue(MatchingType.EQUALITY,"xxx"))
}
headers {
header(contentType(),regex('application/.*xml.*xxxxxxx.*'))
}
}
response {
status 200
body(fileAsBytes("xxxx.xml"))
headers {
contentType(applicationXml())
}
}
}
解决方法
我通过在bodyMatcher中为主要xml元素添加新的xpath条件解决了我的问题。
xPath("//*[local-name()='Body']",new MatchingTypeValue(MatchingType.REGEX,".*nameOfRootXmlElement.*"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。