I am relatively new to the Java ecosystem and I am trying to determine what frameworks are available that can do some or all of the following:
- Expose POJO’s over the network using a variety of technologies
- Be able to switch the transport layer (HTTP, TCP, UDP)
- Supports different message formats (SOAP, JSON, Binary)
- Supports Web Services, REST, and RPC
I want to be able to support using multiple of these communication mechanisms using the same code base (for example using RPC in behind the firewall for efficiency, but exposing the same objects via REST for public consumption). For those familiar with the .NET framework, I’m looking for something of a unified communication framework like the Windows Communication Foundation.
So far I have found tools like Jersey (JAX-RS) that works for REST and Axis2 which is more Web Services oriented but also has some REST support. But I haven’t found something as flexible and configurable as WCF. Does that even exist in the Java world? What would be the closest thing to it?
Thanks.
You may want to take a look at Apache Camel which will allow you switch and transform easily as well as supporting a variety of transports natively and having out of the box integration for some popular frameworks.
Additionally if you’re looking for a platform to build concurrent and highly fault tolerant applications around, akka is worth a look.