2017-01-17 6 views
0

Я использую метод jmsTemplate.receiveAndConvert() в spring-jms. Этот метод возвращает преобразованный объект (Person), но если я использовал Client Acknowledge, то как я могу подтвердить сообщение в этом случае.Подтвердите JmsMessage с MessageConverter в spring-jms

Любые указатели будут оценены по достоинству.

Благодаря

ответ

1

Вы не можете, потому что вы не имеете доступа к Message.

; затем вызовите messageConverter.fromMessage(message) (например, на SimpleMessageConverter), чтобы сделать преобразование.

EDIT

Однако вы действительно не должны делать это, так как сеанс будет либо закрыт, когда возвращается (или возвращаются в кэш, и в этом случае какой-либо другой пользователь может Ack вашего сообщения).

Лучше использовать jmsTemplate.execute() с SessionCallback и только выйти из обратного вызова после того, как сообщение было ack'd.

+0

Спасибо за ответ. Можем ли мы передать ссылку на сообщение Jms в пользовательском объекте и подтвердить ее позже. ? – Nir

+0

См. Изменение в моем ответе. –

+0

Спасибо за редактирование @Gary. это действительно полезно. На самом деле мое требование - получать до 50 сообщений и признавать их один за другим на основе бизнес-логики. Будет ли jmsTemplate.execute() работать в этом сценарии? – Nir