Java EE 8 Application Development: Develop Enterprise applications using the latest versions of CDI, JAX-RS, JSON-B, JPA, Security, and more
O**S
Good overview of JEE 8 features for experienced developers
The monolithic 1300 page tomes documenting everything about "Java" or "Java Enterprise Edition" from the Java 1.4 or Java 5 time frame are now supplanted by smaller books providing overviews of the JEE ecosystem or the intersection of Java and some 3rd party framework or web server. These smaller books are a boon for established JEE practitioners, but it makes it harder for developers getting their first exposure to JEE in the age of agile development and temporary work assignments. Where do you start, and how many books do you need to read to be effective at your job?Java EE 8 Application Development (ISBN 978-1-78829-367-9) by David R. Heffelfinger is a good introduction to JEE. The author leverages his experience to focus on the essentials without getting lost in the weeds documenting every subtle nuance. Hand holding is kept to a minimum. There's a helpful appendix in the back for configuring Glassfish, the reference JEE container and web server; but you're on your own for the selection of the IDE or build system, although based on the book's downloadable code, it seems NetBeans IDE and Maven build system are the preferred choices. The book only covers the relevant parts of the sample applications, so you may need to refer to the code downloads if you try to build the applications yourself. Packt requires readers to create an account and login to download code samples or view errata for their books. I haven't seen other publishers require a login to view errata, so PACKT's approach seems too restrictive to me.If you need assistance working your way through the entire tool chain end-to-end: IDE, web server, java build environment, Java EE 8 Application Development pairs up well with PACKT's Java EE Development with Eclipse (ISBN 978-1-78528-534-9) by Ram Kulkarni. Ram Kulkarni shows you how to navigate the Eclipse IDE and build your war files with Maven. The code samples are documented in a step-by-step fashion, so you can get your feet wet before moving on to the Heffelfinger book. You will need both books because the Eclipse book can be a bit sparse when discussing each technology, and Java EE 8 Application Development covers some material that's ignored or glossed over by Ram Kulkarni's book. A word of caution about the JEE Eclipse book: some of the examples use Apache Tomcat which doesn't support CDI (Context Dependency Injection) beans which became mandatory in Java 8. You will need to do a little extra configuration to make Java 8 and above play nice with Apache Tomcat, assuming you don't configure your project to use Java 7. I used JBoss weld jars (JB Weld?) to add CDI support to Apache Tomcat.There are only a few minor issues I can find with Java EE 8 Application Development. Java's old school roots are on display in Chapter 2, Java Server Faces. The author uses APIs that render HTML in tables for formatting reasons. In the aughts, using tables was the recommended practice; but it's since been replaced by Cascading Style Sheets. Using tables for formatting makes it harder to reformat the page for different displays (responsive design), and it really messes with visually impaired users using reader software. When I brought this issue to David Heffelfinger's attention, he defended the practice by stating it's how the Java APIs worked. When I pointed out that no developer would willingly add tables to the HTML-5 friendly markup example on pages 48-49, he dismissed my observation by saying it was necessary to match the other examples from the chapter. I can accept the author's explanation for Chapter 2 since it was covering Java's front-end APIs, but David Heffelfinger continues to use unnecessary tables throughout the rest of the book. It's harder to forgive Chapter 2's omission of the "rendered" attribute. It's JSF's way to implement conditional display that eliminates the need to mix older Java Server Pages (JSP) or Java Standard Template Language (JSTL) APIs with JSF code. Readers were encouraged to stay away from JSP and JSTL, so I think mentioning the rendered attribute would be helpful.There's an error in Chapter 10 Restful Web Servies that David Heffelfinger did not address when I brought it to his attention. The book recommends using PUT for creating new records and POST for updating records, which is the reverse of the commonly held viewpoint. There is some debate about PUT verses POST online. The most nuanced discussions note that the official specifications provide no guidance outside of stating PUT is idempotent and POST is not idempotent; therefore the correct approach is to use whatever matches the results of the current operation. Chapter 10 creates records in a database using an auto-generated id. So in the case of updating a record, submitting the same change multiple times produces the same end result, which means update should use PUT in my opinion. Submitting a new record with the same data multiple times produces multiple entries in the database, each distinct with its own autogenerated id, which leads me to believe POST should be used. PUT may be a better choice with natural keys since new records submitted with identical data multiple times would be rejected as duplicates (the data itself would provide identical keys); but that doesn't apply to the database setup used in chapter 10.Java EE 8 Application Development doesn't provide a complete demo MVC application, and thus it misses an important fact about CDI beans and Entity beans. While they are both managed beans, their life cycles are different and your applications will break if you try to do Context Dependency Injection with Entity Beans. I learned this the hard way while working through Ram Kulkarni's book; you need to have CDI beans to collect web form data and separate Entity beans to perform the database operations, and you can never mix the two together.PACKT's support team doesn't add a lot of value to the process of reporting errata. They only serve as a go-between for the reader and the author, and they will forward the author's replies to PACKT directly to the reader. I submitted valid errata including code corrections for several of PACKT's titles, but they'll only post the if the author agrees with the feedback. David Heffelfinger rejected my feedback, so I included it here.In conclusion, Java EE 8 application development does a good job presenting JEE 8 specific material in a focused manner. It's a good resource for established developers. Readers new to JEE will need to supplement the book with additional reading. Adding a full MVC demo app using the material discussed in the book, along with the correction to the PUT vs. POST discussion would move the book into 5 star territory.
T**Y
Good summary of Java EE landscape
Good summary of the Java EE landscape. The book is a good resource for experienced architects. Examples are focussed and small
J**.
Book assumes solid Java EE knowledge and experience - Not for those looking for an introduction to Java EE
I dont usually post reviews, but this I feel is important. I am a Java programming student and have a great deal of experience in web development with PHP, JavaScript, MySQL, etc... Developing a web application from scratch with PHP and MySQL is no big deal. I have a solid foundation in Java desktop programming as well, so naturally I wanted to see what Java EE had to offer on the web application front. At the time I am writing this review, this book has 1 other review which says great things and is why I purchased this particular Java EE book. I disagree with that review.This book does not cover the critical points necessary to develop any web application. It does not explain how to structure a project, what files are necessary, how to create the vital parts of the web application, how to compile or run the application. It does not explain how to do this manually OR with an IDE - nothing. You will end up wondering where you are supposed to put the example files in the books tutorials and it will be a source of great frustration. The book covers the code, but not where to put the files in the project directory structure. Trying to use Netbeans or similar IDE you will run into similar problems, where do I put this code file once I write it? Should I try and add it through Netbeans or eclipse add file feature? Which type of file? Enterprise Java Bean? JSF Bean? What? This book is geared towards people who already have a solid foundation in Java EE and is NOT for the Java developer who has no experience whatsoever in Java EE.Like I said, I have been developing web applications in PHP and MySQL for many years, so this is not a new concept. The issue is that this book does not tell you the details of implementation and deployment for the code it contains. The code examples are just code examples with no direction on how to make your project actually work or organize it. There is great information in it, but you will be impotent in your ability to actually create and run projects. I don't want to spend hours researching content and instructions online just to make the projects in the book work. This is a massive flaw in this book and I do not recommend this publication for those new to Java EE. If you already know how to use Java EE then you may not have issue, but it is definitely not for those looking for an introduction to the technology
E**S
The Best Java EE 8 Development Reference
As usual, David did again a great job on this book. It shows a lot of working code exploring deep details of Java EE 8 API's and also giving plenty concepts that will help you understand its basis.If you are a Java EE developer or want to become one, this book is surely a must.
E**A
Tiene de todo
Es un libro muy completo de Java ee 8. Contiene toda la información que se puede necesitar. Un acierto comprarlo
S**N
Great Book
Great Book
P**Z
Excelente libro de Aplicaciones basadas en Java para EE
Excelente libro de Aplicaciones basadas en Java para EE
B**N
Articulo recibido
Por lo menos lo recibí, demoro un poco pero estoy feliz por ahora tener mi artículo que pedí.
S**R
Three Stars
It is not very hands on and not sequenced well with a flow
Trustpilot
Hace 1 día
Hace 2 semanas