2016-04-05 1 views
0

Я адресности следующее исключение в Mule Poll/Водяной знак:Исключение обнаружили обновленный опрос водяного знака: Переменная не сериализуемым

Исключение обнаружили обновление водяных знаков java.lang.IllegalArgumentException: Значение извлекается из события для переменной carimboTempo является не сериализации и, следовательно, не могу быть сохранены в хранилище объектов

Частичная конфигурация XML:

<db:mysql-config name="MySQL_Configuration" host="${crm.db.host}" port="${crm.db.port}" user="${crm.db.user}" password="${crm.db.password}" database="${crm.db.instance}" doc:name="MySQL Configuration"/> 
<flow name="levius-contatoFlow" processingStrategy="synchronous"> 
    <poll doc:name="Poll"> 
     <fixed-frequency-scheduler frequency="10000"/> 
     <watermark variable="carimboTempo" default-expression="2016-03-24 00:00:00" update-expression="#[flowVars.date_modified]"/> 
     <db:select config-ref="MySQL_Configuration" doc:name="Database"> 
      <db:parameterized-query><![CDATA[select 
ac.id, 
c.first_name, 
c.last_name, 
greatest(ac.date_modified, c.date_modified) date_modified 
from accounts_contacts ac 
join contacts c on c.id = ac.contact_id 
where greatest(ac.date_modified, c.date_modified) > #[carimboTempo] 
order by greatest(ac.date_modified, c.date_modified)]]></db:parameterized-query> 
     </db:select> 
    </poll> 
    <foreach doc:name="For Each"> 
     <set-variable variableName="date_modified" value="#[payload.date_modified]" doc:name="Variable"/> 
    </foreach> 
</flow> 

Зачем возникает это исключение? Я что-то делаю неправильно?

+0

carimboTempo также является переменной расхода. Должно быть # [flowVars.carimboTempo] –

+0

Какой тип 'flowVars.date_modified'? Я ожидал 'java.sql.Date', который сериализуем, но исключение говорит иначе. –

+0

'flowVars.date_modified' - это java.sql.Timestamp. – Muka

ответ

2

У меня была такая же ошибка. Не могли бы вы попробовать это:

[? SessionVars.lastUpdated == NULL LastModified: sessionVars.lastUpdated]

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

+0

Я поместил в update-expression следующее и работает: '# [if (flowVars.date_modified == null) {flowVars.carimboTempo; } else {flowVars.date_modified; }] ' – Muka