Currently I am evaluating number of web service frameworks in Java. I need web service framework that will help me to expose some functionality of existent application running on JBoss, The application is mostly developed using Spring and POJOs (no EJBs).
What I need is a framework having following properties:
I have briefly examined
But still it is difficult to decide what to use in my case:
I need your opinion and experience about usage of some of them in a real-world applications.
Still, today, you should know Spring Boot and Spring Cloud, Eclipse Microprofile, Micronaut, and Quarkus to be part of modern-day Java development. The Spring framework is the most popular Java framework, and almost all of Java development happens using that, except for Android apps.
Definition. Libraries provide developers with predefined functions and classes to make their work easier and boost the development process. Framework, on the other hand, is like the foundation upon which developers build applications for specific platforms. Inversion of Control.
Tapestry. Conceptually, Tapestry is similar to JSF and Wicket. It is an open-source, cross-platform, component-based web application development framework that can create highly scalable applications. Built upon the rich Java Servlet API, it works on any container or application server.
Libraries are low-level components that deliver a specific function, such as establishing a network connection. A framework is a known programing environment, such as Spring Boot.
I've used CXF's forerunner, XFire, for a while now and it's not been too bad. At the time, we migrated from Axis for two major reasons: performance and ease of development. At the time (don't know if this is true now), the performance of XFire was much better than anything out there, and with annotation-driven development, instead of having to run stub generation, it was really really easy to add new web services.
CXF seems to be more of the same but better - we haven't migrated yet due to constraints on development time as well as not having a pressing reason to do so (plus the relative lack of documentation 6-12 months ago wasn't too encouraging). Additionally I haven't really evaluated the market of late, so I can't tell you how CXF stands up to its contemporary competitors.
Regarding your points:
So I'm probably a little impartial as I haven't tried the other ones, but I'll give a thumbs up to having a look at CXF. It's pretty fast, relatively simple to get going with and fairly powerful if you need to tweak it.
We have tried Metro and CXF and kept CXF because Metro includes too many dependencies like Sun's APIs in its jar files which makes it difficult to integrate in another application server than Glassfish. CXF has a cleaner packaging with explicit external dependencies. We also failed to enable Gzip compression with Metro while it worked like a charm with CXF.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With