Full description not available
O**S
A good introductory book with some broken and outdated examples from second edition.
The prerequisites for Java EE 8 Development with Eclipse are basic knowledge of the Java language and object-oriented programming similar to what you'd have after working through Headfirst Java and Headfirst Object-Oriented Design. Rudimentary knowledge of your operating system and how environment variables are set is also necessary. Unix/GNU Linux based readers should understand Unix file permissions and how to create and add users to groups to solve any read/write problems they encounter. Introductory knowledge of HTML forms and GET/POST submissions to a web server is helpful.Java EE 8 Development with Eclipse was written for developers new to Java/Jarkarta Enterprise Edition, formerly known as J2EE. It provides specific examples, and walks the reader through them step-by-step. Exposition is kept to a minimum, but the author provides enough information for the reader to understand what they're working with and why they are inputting code; furthermore, the author points out when the examples deviate from actual production design patterns. The third edition of the book adds new chapters for microservices using Docker, deploying JEE applications in Amazon Web Services (AWS), and securing JEE Applications. Readers that complete the book will have the basics that they can use as a foundation for further supplemental learning. Many of the JEE technologies discussed have tutorials available online for free. Readers who prefer books should consider Java EE 7 The Big Picture (ISBN 978-0-07-183734-7) by Dr. Danny Coward for the historical architectural perspective of JEE and Java EE 8 Application Development (ISBN 978-1-78829-367-9) by David R. Heffelfinger for better coverage of JEE 8 written from a practicing programmer perspective (David Heffelfinger gets PUT vs. POST wrong in Chapter 10 by using PUT for new operations and POST for updates. He also uses tables for user input like logins instead of CSS.)Unfortunately, much of the text for Java EE 8 Development with Eclipse was carried over from second edition, which was written for Java 7, Apache Tomcat 7, and MySQL version 5. Java 8 deprecated managed beans in favor of context-dependency injection (CDI) beans; yet the author continues to use managed beans in the examples. The recommendation to use JDK 1.7 on page 3 in the Preface is a dead give-away to the book's older roots despite the cover claiming Java 8 support.Readers modernizing the sample applications to Java 8 and beyond with the latest jar files will encounter headaches that are just as instructional as the book itself. Apache Tomcat is a basic servlet and Java Server Page (JSP) web server. It requires additional Maven java jar files to support CDI beans and various java front-end technologies like Java Standard Template Language (JSTL) and Java Server Faces (JSF). The examples in the book are understandably missing some of the configuration steps when the reader updates to MySQL version 8, CDI beans, the latest jar files, and a 3rd party bean manager like JBOSS Weld. A lot of these configuration headaches could have been avoided if the author stuck to using Glassfish server throughout the book, or if he adopted Apache TomEE, which is Apache Tomcat updated for all the extra JEE components covered in the book. Readers substituting the book's Apache Tomcat server with something more modern should make liberal use of the <scope>provided</scope> attribute for their Maven dependencies.I was a bit disappointed with the database examples in Chapter 4. The author cleverly adds fields that accept null values to the examples - most notably the last name field, so celebrities like Sting or Cher could be instructors or students - but then leaves the update and delete steps for CRUD operations as an exercise for the reader. Since objects and text fields resolve to NULL by default, it makes a big difference when performing updates on records that accept null values verses those set to NOT NULL in the database. This was a great instructional opportunity that was completely missed in the book; but I give the author credit for including null fields, because most authors follow the happy path in their database designs.Eclipse in 2018 still has some annoying bugs and warnings that the author could have documented for new users. For example, many new projects will report themselves as Java SE 1.5 even though the JAVA_HOME environment variable is set. This causes Eclipse to display warnings about mismatched Dynamic Web and Java versions for Project Facets. The solution is to right-click the project, select Preferences and update the Java Build variable to 1.8 (the version used for the book), then go to Project Facets and change Dynamic Web to 4.0 and Java Version to 1.8. Sometimes the Properties UI dialog throws an exception, and when that happens, the user must go to the settings folder for their project in the Eclipse Workspace folder, open org.eclipse.wst.common.project.facet.core.xml, change the jst.web setting version from 2.3 to 4.0, and save the file. The java version can also be updated in the xml file if the user wants to bypass the Properties dialog UI entirely. Showing users how to eliminate some of Eclipse's bogus warnings while working on the exercises would definitely move the book towards a 5 star rating.Readers new to web development should also realize that many of the examples in the book render elements in tables, partly as a result of what the stock Java Server Faces (JSF) API renders as html output. It was the preferred approach when JSF was initially created in the aughts, but in 2018 outputting html for items that don't belong in tables - like a simple web login form - causes headaches for front-end web designers modifying the site with Cascading Style Sheets, mobile users, and visually impaired users using reader software. Keep this in mind as you transition from book exercies to actual production code.In conclusion, if you're new to JEE and willing to put in some effort correcting and updating the author's examples, this book is a good starting point because it offers step-by-step instructions. Working through the book's exercises meets its stated objectives of providing an overview of JEE technologies, hands-on experience with the Eclipse IDE, and an introduction to the Maven build system. If you don't have any interest in the Docker or AWS coverage, you can save yourself some money by buying the second edition of the book. I recommend pairing this book with David Heffelfingers Java EE 8 Application Development as a reference when replacing managed beans with CDI beans. 3/5 stars. The material is 4 star worthy, but I'm deducting a star for the coding errors, outdated APIs, minimal samples (no data validation or update/delete operations), and the use of an older version of MySQL.Check the comments section below where I correct most of the problems with the book. I submitted these notes to the publisher Packt as errata for their website, but they've been slow to post it. Thanks to Amazon comments, you can find the errata here.
Trustpilot
1 week ago
2 months ago