This is mainly because you want to use Spring Remoting (which Spring RMI and Apache Camel are implementations of) - or you want to use JAX-WS for web services (which CXF or Metro implement). that is, you want automatic remote connection for your POJOs - or you want WS with WSDL contracts, etc.
As soon as you decide to use remote access technology; your next solution is whether you want to link it inside your application as a library (e.g. Spring RMI or Camel) - or you want to deploy it in an ESB container such as ServiceMix to be able to flash modules, etc. .
If your last choice, use Apache ServiceMix or use FUSE ESB if you want a commercial distribution with more documentation, frequent releases, commercial support, etc.
source share