我有一些带有javabean有效负载的骡子流,我想做的是使用从https出站网址返回的一些xml(xpath)来丰富一些变量。
我正在尝试的是:(假设整个证书/ tls问题不是问题):
<enricher>
<https:outbound-endpoint name="clientEndpoint" address="https://someaddress"
connector-ref="httpConnector" exchange-pattern="request-response"/>
<enrich target="#[variable:paymentValidated]" source="#[xpath:INCIDENTS/INCIDENT/@state]" />
</enricher>
<logger message="#[variable:paymentValidated]" level="ERROR" />
但是,我似乎无法使用从https端点返回的xml,我不断受到XPATH违规。在用验证器检查我的xpath后,我确定我正在给出一个正确的xpath。
我也尝试过使用bytearraytostring响应转换器 - 但问题没有解决。
任何人都知道如何解决这个问题并让它发挥作用?
我试图解析的xml:
<?xml version="1.0" encoding="UTF-8" ?>
<INCIDENTS process_ms="56">
<INCIDENT assignee="Unassigned" closedtime="" createdtime="Fri Jan 20 15:13:10 EST 2012" creator="System" disposition="Not Set" disposition_id="-1" domain="SES" guid="5749976847410062927" id="147" incident_type="security" modifiedtime="Sat Jan 21 15:13:15 EST 2012" open_duration="2 days 18 hours 53 mins 56 secs" priority="3" referencenum="0000000147" severity="4" state="New" state_id="0" status="Open" status_id="1" team="Unassigned" tracking="No" type="SomeType" userpriority="">
<DESCRIPTION>
<![CDATA[ Some message" ]]>
</DESCRIPTION>
</INCIDENT>
</INCIDENTS>
答案 0 :(得分:0)
由于您没有显示确切的错误,我会尝试猜测。
我认为问题来自于您从事件列表中选择状态属性而不是一个事件。试试:
/INCIDENTS/INCIDENT[1]/@state
答案 1 :(得分:0)
您还可以使用来自Mule 3.6的Mule Xpath3的功能 如下所示: -
#[xpath3('/INCIDENTS/INCIDENT[1]/@state')]
请在此处找到Xpath3的链接: - dependency injection