0
Мой Обмен тела является HashMapACCESSING объекта от Apache Camel
public void processHeathData(@Body HashMap<String, Object> body)
{
CompleteTxnDetail competeTxnDetail = getCompeteTxn();
competeTxnDetail.setTxnDataMap(txnDataMap);
body.put("NOW", competeTxnDetail);
}
Я поставил объект на карте
public class CompleteTxnDetail {
public float getTotalFaliurePercentage()
{
Set<String> keySet = txnDataMap.keySet();
Integer totaltxn = getTotalTxn();
if(totaltxn==0)
return 0;
Integer faliure=0;
for(String key : keySet)
{
TransactionStatusDetailDTO dto = txnDataMap.get(key);
faliure = faliure + dto.getFailedTxn();
}
float faliurePercentage = faliure*100f/totaltxn;
return faliurePercentage;
}
}
Теперь я доступ к этому в том, когда, но не может получить доступ к
<choice>
<camel:when>
<simple>${body.NOW.getTotalFaliurePercentage} < 2</simple>
<bean ref="test" method="printMessage('One')" />
</camel:when>
<camel:otherwise>
<bean ref="test" method="printMessage('two')" />
</camel:otherwise>
Просьба уточнить ваш вопрос. Вы получаете сообщения об ошибках? – Alex
Я получаю gettin не могу вызвать метод на NULL, я также пробовал $ {body [NOW] .getTotalFaliurePercantage $ lt; 2} –
Вы помещаете MAP на кузов обмена и пытаетесь получить к нему доступ из простого заявления? Я не уверен, что работает. Для этого я обычно использую процессоры. –