Saturday, June 11, 2011

Book Review for "Apache CXF Web Service Development"

Book Review for "Apache CXF Web Service Development" (When bottom-up "Hello World" is not enough)

Do you use Apache CXF? If so, you might take an interest in "Apache CXF Web Service Development". Here's my impression.

The book does a good job of covering CXF use cases, going beyond the usual trivial Jax-WS examples. It also covers Jax-RS (RESTful) web services, and covers each in enough detail that you're likely to find what you need when working with CXF.

Jax-WS has largely demystified basic web service development, so there's a great amount of content on the web that will show you how to quickly annotate a POJO to get a web service up and running. But what if you need to do contract-first (top down) development? Lightweight resources often conveniently bypass this more difficult trail, but this book does a good job of handling it. (This is no great accomplishment for a book on web service development, but it does set the tone for the types of things this book will show.)

Let's say you have a need to work with the raw XML, rather than getting the message in the form of a POJO? That's the use case for using a Jax-WS 'Provider' web service, and the book covers this and the client-side equivalent component (Dispatcher.)

How about if you want to change the message in some way, maybe altering security information? Interceptors are useful in that case, these are explained.

RESTful web services are pretty popular, they're in the book as well. Not only REST, but also how to implement then with XML payloads or JSON. You're given knowledge of the tools to test all these things, as well.

So who would I recommend this book to? I'd say a Java developer either currently using or wanting to use Apache CXF. The book isn't a complete reference for CXF, but it does introduce all the important topics. Once introduced, there's enough content to either solve your problem or at least educate you enough to effectively research what remains.

The book can be found here.

Happy Jax-*'ing!