Beginning Java EE 6 Platform with GlassFish 3
Buy it now
One Minute Bottom Line
|This is a good book for a Java EE newbie wishing to learn about Java EE 6. If you already are a Java EE pro the book will not be as usefull to you.|
Recently I had an opportunity to read Beginning Java EE 6 Platform with Glassfish 3 by Antonio Goncalves. The book has the subtitle "From Novice to Professional" and that's a pretty accurate description of the book. After reading it a person not familiar with Java EE, but familiar with Java SE should feel comfortable developing a small Java EE application.
The book covers some but not all of the Java EE 6 standards. The standards covered are: Java Persistence API, Java Transaction API, Enterprise JavaBeans, JavaServer Faces, JavaServer Pages, Java Message Service and webservices, both RESTful and SOAP. That leaves out a couple of Java EE 6 standards, for example JavaMail and J2EE Connector Architecture, but since those are less important I believe it was reasonable to leave them out to keep the page count below 500 pages.
The book is oriented towards the beginner with explanations of important terminology and historical walkthroughs of how we got to current standards and implementations. There is also a significant amount of example source code to illustrate the concepts.
To run the source code in the book the reader needs to setup the environment, namely install JDK, Maven, JUnit, Derby and Glassfish. Instructions for the installation are provided, but I am missing IDE integration. Many Java developers (especially ones using Windows which is the only OS supported by the book) are used to working from an IDE and will find the command line use unfamiliar and uncomfortable.
Another issue is that the Maven setup provided in the book is missing some of the repositories making it impossible to run the book examples as is. Fortunately a correct setup is provided in the source code on Antonio Goncalves’ homepage making the problem solvable by anyone with rudimentary Google skills that can be expected from anyone reading the book, but it’s still a bad thing since it leads to people just running the downloaded code instead of typing it themselves which gives a much better learning experience.
The book is using Glassfish as the example Java EE 6 implementation. While it is the reference implementation and the one that has come furthest along in implementation of Java EE 6 its use in the industry is almost non existent. Of course, that’s not something the author can be blamed for, but it still limits the usefulness of the book for practical usage since there is no doubt that there will be something different in Oracle’s or IBM’s implementation. Another issue with Glassfish is that its future is in doubt now that Oracle has purchased Sun, but again, that’s not something the author can be blamed for since he couldn’t know that at the time of the writing.
I really liked the overview of the Java Persistence API. In my opinion the author covered the standard very well and explained a lot of complicated issues in a simple and easy to understand way. A good example is the explanation of how inheritance should be mapped to the database. That’s a rather complicated issue that has many solutions with different limitations. I found the explanation of those different solutions and when each one should be used to be very enjoyable.
Another part I found very interesting is the overview of RESTful webservices. The author explained not only how they should be implemented technically but also why it’s such a good idea to use them instead of a different approach. I find that type of explanation to be quite rare in literature covering the subject
The book was published by Apress and just like all other Apress books I’ve seen it’s very well printed with good covers, good paper and good choice of fonts.
All in all I find this to be a very good book. It’s useful to Java EE novices wishing to learn about Java EE technology and it can also be used by people already familiar with the technology as a reference.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)