Paperback: 320 pages
Publisher: O'Reilly Media; 1 edition (February 22, 2009)
Product Dimensions: 7 x 0.7 x 9.2 inches
Shipping Weight: 15.2 ounces
Average Customer Review: 4.1 out of 5 stars See all reviews (32 customer reviews)
Best Sellers Rank: #999,405 in Books (See Top 100 in Books) #155 in Books > Computers & Technology > Internet & Social Media > Web Browsers #580 in Books > Computers & Technology > Security & Encryption > Privacy & Online Safety #1042 in Books > Computers & Technology > Programming > Languages & Tools > Java
The reviewers of this book who rave about the details in this book certainly did not try to execute any of the example code. If they had, they would know that these are errors all the way through the book in the code examples.The errors are not trival if you are trying to learn by focusing on what exactly the code is doing. In one example in the first chapter, there is a whole class left out of the source code, nor does the book mention it in the text.Go to the errata section on the publishers website, the list of errors is long. The error I mention above is not in the errata either.How does a book like this get out to the store shelves without proper editing?If this is the best the author can do, please don't screw over the readers that are making their best efforts to get it right. If you would rather write a conceptual book, that's fine, just leave the details out.
The author appears to be a C/C++ veteran instead of a Java guru. Method names such as read_teams_from_file and variable names such as team_map are everywhere.The author also appears to ignore other common industry practice or industry norm. E.g. in the RestfulTeams service (page 137), information about the new team to create is contained in the HTTP header rather than in the body of the HTTP request to demonstrate "the flexibility of REST-style services".While it is interesting to show it is possible to develop a Dispatch client against a SOAP based service with HTTP_BINDING (page 158), the author does not even mention the better, easier and more concise alternative, i.e., to use the default SOAP_BINDING for the Dispatch client.Section 5.3.2 HTTP BASIC Authentication (page 212) is another example of abusing a well defined and well understood IT industry terminology, while the true HTTP BASIC Authentication (on Tomcat) is covered under another section (page 219, Container-Managed Authentication and Authorization) without explicitly lableing it as such.Overall, the first 120 pages is a good introduction to JAX-WS 2.1. The rest of the book appears to be filler from various lecture notes.
I bought this book primarily to read about writing RESTful Web Services with JAX-RS which is one of the two topics mentioned in the product description.I must say I am really disappointed with the coverage of this topic. Not many pages are devoted to it, and there are also some flaws in the presentation of REST and in the examples. For example when describing HTTP GET, the author equals "side-effect-free" with "idempotent", which is wrong. The Representations (the XML-formats) are strange, for GET they are serialized Java-objects without any semantics, for POST they are XMLs with the verb as the root-tag.The presentation of JAX-RS (Jersey) is only 4 pages, and far from what I need to do something useful.As for the rest of the book I don't know, so the rating is based on the presentation of REST and JAX-RS.I bought this book together with the "Java SOA Cookbook" by Eben Hewitt, and I also have read "RESTful Web Services" by Leonard Richardson. The chapter on REST and JAX-RS in the "Java SOA Cookbook" if faaar better, and "RESTful Web Services" is a good general introduction to REST.
Disclaimer: I have very little appreciation for web services technology so my ideas on this book might suffer from that. My general opinion on the existence and success of web services technology is , to quote Dijkstra: "Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better".Anyhow, back to the review. This book has actually many fine points: it's code driven, to the point, informal and packed with interesting info...so why do I give it only 3 stars? Well.. because it s' too informal and packed with info. This book reminds me of an old professor of mine who was really a brilliant experimental physics researcher but a lousy teacher.. he would start explaining something, than his mind would jump to something barely related to that, and then, hey wait there is also this other thing I need to tell you about.. You get the point. This book has similar flaws, it touches many subjects but fails to dedicate enough space and coherence to give you a solid foundation on which to build on with your experience.Web Services technology is too complicated (read an over-engineered mess) to be covered in sufficent solid detail in a 300 pages book. The author should have doubled the size of the book or halved the span of its contents. I hope he will choose the first option in a second edition. Till then, it remains more of a book written for its author then for its readers...
Poorly written.After being trained to read books (as opposed to code) sequentially for years in the public education system, readers don't expect to see references to things they've not yet encountered. Problem here is context switching, i.e. the same reason IDE's have all these built-in widgets and plugins... so the developer doesn't have to switch contexts mentally in order to get something besides coding done. A subversion check-in for example. So I'm reading along and I find a reference to an object I've not read anything about so far in a code example. Where did I miss that? The reader now has to thumb backwards in order to find out that the writer hasn't introduced the object of consternation yet.My point is that a writer should never do this. If the reader reads a code example and there is a reference to an Object, method, etc. the reader should already have read the declaration and implementation of that object or method so that they don't trip over something that seems to be a mystery and have to switch contexts in order to figure it out. Style is not nearly as important as clarity or understanding. To top that off, "style" in the reader's shop is probably different from "style" in the writer's shop anyway. So you might as well write it in the clearest and most understandable way anyhow.Another pet peeve of mine is that the code examples are non-functional which is to say that if you go and download them, there is no build. Would this really have killed the author?