2012-01-22 4 views
0

У меня поток мула с некоторой полезной нагрузкой javabean, то, что я хотел бы сделать, это обогатить некоторые varaiables, используя некоторый xml (xpath), возвращаемый с исходящего URL-адреса https.Message Enricher Usage

Что я "м пытается что-то вроде: (Предположим, что весь сертификат/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" /> 

Однако, я не могу показаться, чтобы иметь возможность работать с XML вернулся из . HTTPS конечной точка, я постоянно получаю нарушение 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

Можете ли вы показать основную причину в вы получаете стек ошибки? Кроме того, является ли источником XML в любом пространстве имен? В используемом XPath не используется пространство имен. –

+0

У меня нет этого в стороне от меня, но ot не мог оценить xpath. Не следуя своей точке относительно пространства имен im fear – Menyh

+0

Можете ли вы показать пример XML-сообщения, для которого вы хотите использовать Xpath? Мы сразу узнаем, находится ли это в любом пространстве имен. Если это так, вам нужно настроить диспетчер пространств имен, иначе он никогда не будет работать. –

ответ

0

Поскольку вы не показывает точную ошибку, я попытаюсь угадать

Я думаю, что проблема связана с тем, вы. выберите атрибут состояния из списка инцидентов, а не только один Попробуйте с:.

/INCIDENTS/INCIDENT[1]/@state 
0

Вы также можете воспользоваться функцией Mule Xpath3, который из Mule 3.6
Нечто подобное следующим образом: -

#[xpath3('/INCIDENTS/INCIDENT[1]/@state')] 

Пожалуйста, найдите Линке для Xpath3 здесь: - https://developer.mulesoft.com/docs/display/current/XPath