spring-integration - Spring 集成 - XpathPayloadEndpointMapping - 无法理解且没有此类文档
问题描述
<bean class="org.springframework.ws.server.endpoint.mapping.XPathPayloadEndpointMapping">
<property name="expression"><value>local-name(/*)</value></property>
<property name="mappings">
<props>
<prop key="sampleKey">mySampleServiceGateway</prop>
. . .
<xs:element name="sampleKey">
<xs:complexType>
<xs:complexContent>
. .
我从您的一个集成项目中获得了上述代码。但我无法理解标签可以包含哪些可能的值以及<value>local-name(/*)</value>
.
虽然通过查看代码,我可以确定关键是 XSD 元素名称,但我无法从中获得更多信息。
是否有与 spring 集成的不同映射相关的任何文档,如何使用它们?
解决方案
您的配置看起来不错,尽管您确实需要弄清楚应该使用什么 XPath 表达式。它应用于 SOAP 请求消息体:
protected String getLookupKeyForMessage(MessageContext messageContext) throws Exception {
Element payloadElement = getMessagePayloadElement(messageContext.getRequest());
return expression.evaluateAsString(payloadElement);
}
所以,真的可以考虑对你身体的一个根元素进行断言。
根据提供的配置,您尝试解析为请求根元素的本地名称。听起来您现在期望sampleKey
作为根标签名称。
XPathPayloadEndpointMapping
有关更多信息,请参阅 JavaDocs 。
推荐阅读
- java - 具有 OneToOne 映射的两个实体上的 PK 自定义序列生成器引发异常
- docker - 如何在 jenkins 管道中为 docker build 命令指向具体的 Dockerfile?
- c++ - 如何修复 stlsoft.h 中的 VS2017 错误 C1189
- c++ - 当有可用的右值构造函数时,为什么从右值调用类引用构造函数重载?
- sql - 插入父子记录
- node.js - 使用 nodeJs 发布 aws 实例的内存利用率指标
- amazon-web-services - apache griffin 如何与 AWS S3 配合使用?
- python - 从嵌套字典中检索特定的键和值,并将它们分配到 python 3.X 中的新字典中
- python - ModuleNotFoundError:没有名为“sklearn.decomposition”的模块
- bash - 如何使用 telnetlib 检查从特定源服务器到目标服务器的连接