Spring integration Spring集成—XpathPayloadEndpointMapping—无法理解,也没有此类文档 本地名称(/*) mySampleServiceGateway

Spring integration Spring集成—XpathPayloadEndpointMapping—无法理解,也没有此类文档 本地名称(/*) mySampleServiceGateway,spring-integration,spring-ws,Spring Integration,Spring Ws,。 . 。 我从你的一个集成项目中得到了上面的代码。但我无法理解标签可能包含哪些值以及本地名称(/*)的含义 虽然通过查看代码,我可以发现关键是XSD元素名,但我从中无法获得更多信息 是否有与spring集成的不同映射相关的文档,以及如何使用它们?您的配置看起来不错,不过您确实需要弄清楚应该使用什么XPath表达式。它针对SOAP请求消息体应用: <xs:element name="sampleKey"> <xs:complexType>

。 .


我从你的一个集成项目中得到了上面的代码。但我无法理解标签可能包含哪些值以及
本地名称(/*)
的含义

虽然通过查看代码,我可以发现关键是XSD元素名,但我从中无法获得更多信息


是否有与spring集成的不同映射相关的文档,以及如何使用它们?

您的配置看起来不错,不过您确实需要弄清楚应该使用什么XPath表达式。它针对SOAP请求消息体应用:

<xs:element name="sampleKey">
        <xs:complexType>
            <xs:complexContent>
<>所以,可能会考虑断言你的身体的根元素。

根据提供的配置,您尝试解析为请求根元素的本地名称。听起来您现在希望将
sampleKey
作为根标记名


有关更多信息,请参阅
XPathPayloadEndpointMapping的JavaDocs。

感谢Bilan对此进行了介绍

在做了更多的研究之后,我意识到答案是“表达式可以使用哪些可能的值?”并在spring文档中搜索uff!我错了

XPath不是spring元素,它是一个完全独立的元素,spring只是利用了它。因此,要了解元素可以保存哪些可能的值,任何人都可以参考W3C的以下链接

所以。在我的例子中,当前值
local name(/*)
,它只是一个预定义的XPath方法

<xs:element name="sampleKey">
        <xs:complexType>
            <xs:complexContent>
protected String getLookupKeyForMessage(MessageContext messageContext) throws Exception {
    Element payloadElement = getMessagePayloadElement(messageContext.getRequest());
    return expression.evaluateAsString(payloadElement);
}