В основном это сводится к тому, что вы хотите использовать Spring Remoting (для которых Spring RMI и Apache Camel являются реализациями) - или вы хотите использовать JAX-WS для веб-сервисов (которые CXF или Metro воплощать в жизнь). т.е. вы хотите автоматическое удаленное взаимодействие для ваших POJO - или вы хотите WS с контрактами WSDL и т. д.
Как только вы определились с технологией удаленного взаимодействия; Ваше следующее решение: хотите ли вы объединить его внутри приложения в виде библиотеки (например, Spring RMI или Camel) - или вы хотите развернуть его в ESB-контейнере, таком как ServiceMix, чтобы иметь возможность горячего повторного развертывания модулей и т. д.
Если последнее является вашим выбором, тогда используйте Apache ServiceMix - или используйте FUSE ESB, если вы хотите коммерческий дистрибутив с большим количеством документации, частыми выпусками, коммерческой поддержкой и т. Д.