2015-12-12 3 views
0

Я пытаюсь сопоставить класс с другим с отображением Apache Camel и Dozer.Apache Camel Dozer Expresison Mapping

В моем маршруте я сохраняю объект класса в собственности, например .setProperty("test", testClass). Теперь я хочу получить объект класса из этого свойства и сопоставить его с полем нового класса.

В документации к верблюжью бульдозеру Camel Dozer указано, что можно отобразить выражение в поле. Если я пытаюсь сопоставить значение свойства с соответствующим полем, я всегда получаю значение null.

Это способ, которым я пытаюсь получить значение свойства

<field custom-converter-id="_expressionMapping" custom-converter-param="simple:${exchangeProperty.test}"> 
    <a>expression</a> 
    <b>targetField</b> 
</field> 

Есть ли возможность сделать это?

ответ

0

Только от верхней части моей головы, и, глядя на документацию, вы можете просто пропускать «\» в передней части «$» знак:

<field custom-converter-id="_expressionMapping" 
    custom-converter-param="simple:\${exchangeProperty.test}"> 
    <a>expression</a> 
    <b>targetField</b> 
</field> 

Я думаю, что его даже специально упоминается очень конец documentation:

Обратите внимание, что любые свойства в пределах вашего выражения должны быть экранированы с «\», чтобы предотвратить ошибку, когда бульдозер пытается разрешить значения переменных, определенных с помощью EL.

+0

Я попробовал его с помощью «\», но это не сработало. Тот же код работает для других типов данных, таких как integer или BigInteger. Но если я использую объект класса, он больше не работает. – JavaSquirrel