Я наконец понял это, посмотрев на компонент Stream.
Оказалось, что я допустил ошибку, думая о конечной точке как о чем-то центральном, через что все должно пройти.
ПростоеОтвет заключается в том, что потребитель получает данные из внешней системы (в моем случае прослушивает сокет сервера), а производитель отправляет данные во внешнюю систему.
Поскольку моя конечная точка доступна только для чтения (она не будет использоватьсякак конечный пункт процесса маршрутизации Camel), мне действительно не нужен производитель (он должен выдавать исключение RuntimeException, если система все еще пытается это сделать из-за неправильной конфигурации).Подходящим примером будет конечная точка атома верблюда - вы можете читать каналы, но (по состоянию на 1.6.0) вы не можете их опубликовать.
Аналогично, вам нужен только производитель для конечной точки только для записи, которая неполучать данные из внешней системы (например, протоколирование).