【问题标题】:Execution of xpath failed in Mulesoft在 Mulesoft 中执行 xpath 失败
【发布时间】:2017-12-05 18:11:19
【问题描述】:

我的 Mulesoft 进程正在调用 SuccessFactors API。 /LOGIN 调用会产生这样的响应。

    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
       <S:Body>
          <loginResponse xmlns="urn:sfobject.sfapi.successfactors.com" xmlns:ns2="urn:fault.sfapi.successfactors.com">
             <result>
                <sessionId>9A95*******A2631B8E820894CA.ps8bsfapi52t</sessionId>
                <msUntilPwdExpiration>9223372036854775807</msUntilPwdExpiration>
             </result>
          </loginResponse>
       </S:Body>
    </S:Envelope>

我在命名空间管理器中声明了以下命名空间

            <mulexml:namespace-manager>
                <mulexml:namespace prefix="S" uri="http://schemas.xmlsoap.org/soap/envelope/"/>
                <mulexml:namespace prefix="ns2" uri="urn:fault.sfapi.successfactors.com"/>
                <mulexml:namespace prefix="" uri="urn:sfobject.sfapi.successfactors.com"/>
            </mulexml:namespace-manager>

我想将 sessionId 读入 mule 会话变量。

    <set-session-variable variableName="SESSION" value="#[xpath('//S:Envelope/S:Body/loginResponse/result/sessionId').text]" doc:name="Get Session from Login"/>

但是,在执行时,我最终会陷入这种状态

        <faultstring>Execution of the expression "xpath('//S:Envelope/S:Body/loginResponse/result/sessionId').text" failed. (org.mule.api.expression.ExpressionRuntimeException).</faultstring>

XPath 在除 Mulesoft 之外的任何其他工具上都能很好地检查。

【问题讨论】:

  • 谢谢。但这就是成功因素系统的回应。我无法改变这一点。

标签: xpath mule mule-studio


【解决方案1】:

使用 XPATH 和 * 作为命名空间,因此您无需为命名空间而烦恼。

#[xpath('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId').text]

xpath 是新版本的 mule 已弃用。

更新:

#[xpath3('//*:Envelope/*:Body/*:loginResponse/*:result/*:sessionId')]

希望这会有所帮助。

【讨论】:

  • 谢谢。但不,那没有用。结果是一样的。
  • 请检查更新的答案。使用xpath3 代替xpath。它对我有用。
  • 嗯,这有点为时过早。它不再倾倒。但它不获取变量
  • INFO 2017-12-05 12:06:45,254 [[pilatus].HTTP_Listener_Configuration.worker.01] org.mule.api.processor.LoggerMessageProcessor:会话为:会话为空
  • 知道了 #[xpath3('//*:sessionId',payload,'STRING')]"。这是您的其他答案之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2019-04-17
  • 2020-08-19
相关资源
最近更新 更多