2013-03-20 2 views
-2

В настоящее время я работаю над двумя проектами FUSE, которые связаны между собой. , поэтому я попытался отправить пакет Datagram из одного проекта в другой проект, используя конечную точку Apache Camel Mina udp с пользовательским кодеком. Моя проблема в том, что пакет датаграмм получен другим проектом, хотя он будет вызывать исключение таймаута в проекте1.org.apache.camel.ExchangeTimedOutException: сообщение OUT не было получено внутри: 30000 millis

Пожалуйста, дайте мне предложение, почему так оно и происходит, и как его решить ????

ответ

0

Вы делаете запрос/ответ на этот транспорт. И ответа не было, и через 30 секунд произошло исключение тайм-аута.

Если вы не хотите делать запрос/ответ, но в одностороннем порядке, то настройте компонент camel-mina на sync = false.

И если вы хотите сделать запрос/ответ, вы можете увеличить тайм-аут дольше 30 секунд, если вам нужно больше времени.

Смотрите верблюжьи-Mina документы: http://camel.apache.org/mina

+0

Спасибо за ответ @Claus –

+0

согласно вашему предложению я положил синхронизации = ложное в пути и его работает отлично. , но в некоторых маршрутах мне нужно ответить назад от получателя, так что я установил 1min таймаута, но все еще получаю ту же проблему. Еще раз спасибо. –

+0

Если вы только иногда отправляете ответ. Тогда вам нужно еще отправить «NO REPLY», чтобы вызывающий абонент знал, что не будет никакого «реального ответа». Итак, на стороне «сервера» выясните это и отправьте обратно «НЕТ ОТВЕТ» или «Настоящий ответ». Затем вы можете настроить sync = true. –