Product Description
The complete guide to installing and configuring the GlassFish Application Server and developing Java EE 5 applications to be deployed to this server Concise guide covering all major aspects of Java EE 5 development Uses the enterprise open-source GlassFish application server Explains GlassFish installation and configuration Covers all major Java EE 5 APIs In Detail GlassFish is a free, open-source Java EE 5-compliant application server that is quickly… More >>
5 thoughts on “Java EE 5 Development using GlassFish Application Server: The complete guide to installing and configuring the GlassFish Application Server and developing … 5 applications to be deployed to this server”
Leave a Comment
You must be logged in to post a comment.
My overall opinion of the book is good. The book is very well written, and the code examples in the book work. Working code examples are the number one criteria for me. The code examples start with some examples in Chapter 2 that are used throughout the remainder of the book. This provides a coherent flow through the book. You may also download the code examples from the Packt Publishing support site.
I would recommend it as a book to have on your development bookshelf.
The book claims to be the complete guide to installing and configuring GlassFish. I would not give it that much credit. There is room for more extensive books on GlassFish. There are a number of topics that are very general and have nothing to do with the actual configuration of the server. A better book summary would be a guide to installing, configuring, and developing applications for the Glassfish server. It is really a Java EE 5 tutorial which features Glassfish.
As a book on GlassFish, it is very light in its coverage. As a tutorial for developers acquainting themselves with Java EE 5 and deployment on Glassfish it is very good. In my opinion it is targeted at developers familiar with J2EE who want to switch to JEE5, or junior developers trying to get a better comprehension of the EE environment. It is not for novice programmers.
Chapter 1
Getting Started with GlassFish
This chapter covers getting and installing GlassFish. It is very basic, but will get you up and running. It also includes how to set up your JNDI database connections. The majority of this information can be readily found on the GlassFish site on Java.net. There is a good example of how to set up multiple domains on GlassFish which is not easily gleaned from the site. There is a chart which shows how the –portbase command line option is used to set the ports on which GlassFish services connections. This provides the best explanation for this command line option and graphically depicts what the results are.
Chapter 2
Servlet Development and Deployment
This chapter is a very basic tutorial on servlet technology. It includes writing a simple servlets, web.xml files, and deployment file layout (war files). It includes some examples on html forms, request forwarding and response re-direction. There is nothing GlassFish specific and the files will just as easily deploy on Apache Tomcat unaltered. There is one item of note which is sun-web.xml related which has to do with how to change the context root. This is used if you do not want the default deployment context to match the name of the war file.
Chapter 3
JavaServer Pages
This chapter again has a basic tutorial on JSP technologies. There is a really good example of creating custom JSP tags and how to use them. Again, there is nothing that would prevent the war files from being deployed on Apache Tomcat. I wish that the author would have covered Unified Expression Language (EL) in more detail. It is more central to this technology on JEE5 platforms.
Chapter 4
Database Connectivity
This is the first chapter which covers a really important topic in the enhanced JEE5 database access functionality, new Java Persistence API (JPA), and its reference application server (GlassFish). The first example shows a servlet and how to connect to a database using the old form of JNDI lookup without resource injection. The next example shows the simplified version using resource injection of the DataSource. This removes all the plumbing of fetching our data source.
The next section covers Java Persistence API (JPA) and provides an in-depth tutorial. This is a key concept in JEE5. It introduces the Entity annotation on a POJO to convert it to a persistable object. The simple example that follows it demonstrates correctly how to to use JPA in a non-thread safe environment of a servlet using a UserTransaction. It also covers the persistence.xml file.
This chapter is a must for anyone who wants to learn JPA. The sections on entity relationships, and composite primary keys are done extremely well.
This chapter concludes on Java Persistence Query Language (JPQL) which is the follow-on from EJB QL.It is very light. I wish the author would have covered this very important topic in more detail. That being stated, the code sample is a perfect example.
The book is worth purchasing for this chapter alone.
Chapter 5
JSP Standard Tag Library
This chapter is a basic tutorial on the JSTL. I found a number of syntax mistakes, which were submitted back to Packt. The SQL JST Tag Library is covered. It was very simple. There is one note on No Suitable Driver SQL Exception which is often a hard thing to track down.There is nothing substantive about this chapter.
Chapter 6
JavaServer Faces
This is another JEE5 technology that needs more coverage in general. This chapter provides a good foundation on the reference JSF implementation. It is very well written. I am a big advocate of JSF and thoroughly examined this chapter.
The introductory examples are well done and give a good overview of the technology. The example Customer bean is the same bean that is used in JPA in chapter 4. This shows the consistency and flow between chapters. In this case we use the bean as a managed bean in the JSF context.
The chapter also explains the changes needed in the web.xml file for JSF.
The section on validators is very well done. It includes an example using the Apache Commons Validator framework. The point is to show that you should look for good validators rather than creating your own. Roll your own for domain specific requirements. It also covers validator methods in some detail. It also covers another useful utility from the Apache Commons Language Library.
There is a section on customizing messages that provide feedback to the user on various validation errors. It contains a section on how to modify the default messages on GlassFish. It is nice to know how to do this, but I would encourage users NOT to do it. You can Google for the default messages to see what they mean. If you change them, that option no longer exists. Also it is not intuitively obvious where the message is coming from. There is another example using a message bundle for your customized messages. I would HIGHLY recommend using this method.
There is a wonderful section on integrating JPA and JSF. This is a must read, and covers the practical side of JSF and JPA. It uses a model-view-controller paradigm. It shows how to use the JPA as a managed bean that gets set from the JSF page and saved/modified from the controller servlet. This is an excellent example of how to do it.
Finally, the chapter closes with a reference to the JSF Core components. I personally believe that this should have been an appendix. It really does not contribute to the flow of the book, or chapter. I went through the reference with a fine-toothed comb. The examples are really clean. I submitted some errata for the section, but it was done very well.
This is another chapter that makes the book worth purchasing.
Chapter 7
Java Messaging Service
This is a chapter that has a very specific setup for GlassFish. Most of the previous chapters were general enough on the specific technologies that they could be used on Apache Tomcat. The JMS server setup which is covered for GlassFish is very specific to the server.
The first part of the chapter covers how to set up the JMS connection factory, and JMS destination resources (Queue and Topic).
The examples that follow are very well done on how to use the various topics and queues.
I was really impressed with the authors examples. They were clean. I questioned one of the examples on durable topics, only to discover that the author was correct.
Chapter 8
Security
This chapter seems out of sequence. The Enterprise Java Beans (EJB) and Web Services chapters follow it. I would have recommended it to follow those two chapters. The author does cover securing EJBs and web services which require a security pre-cursor, but it seems to disrupt the flow of the book.
This chapter was a big disappointment. The topic is covered in minimal detail. This chapter is so important that it needs more coverage.
Here are some of the major omissions:
* Setting up a SSL/TLS connection using a self-signed certificate, or CA certificate
* Setting up an LDAP realm
* Optional attributes for the various realms
There is coverage of the various realms with a focus on file and JDBC.
The JDBC realm is complex. I understand that setting up a JDBC realm requires more work, but I am not sure how many people would use this type of realm.
The file realm coverage is detailed, but I am not sure that any enterprise would use this arrangement. It is not scalable.
The example login form using j_security_check is very useful, as well as, the example LogoutServlet.
The certificate realm is covered in fine detail. It is one of the best examples of how to configure this setup.
The LDAP and Solaris realms are weak. There is nothing here but a placeholder explanation. I can imagine that most enterprise users will have an LDAP domain that they will connect to. This topic could have included an example using OpenLDAP with its configuration in an appendix, or using openDS (http://opends.dev.java.net).
The JDBC realm setup has a number of serious errors which were reported as errata.
The section on defining custom realms is ok. It glosses a topic which requires more detail. I would HIGHLY recommend using a pre-defined realm instead of defining your own.
Chapter 9
Enterprise JavaBeans
This chapter provides a good tutorial on the JEE5 EJB 3.0 technologies. It covers the use of the new @Stateless, @Stateful, and @MessageDriven bean annotations.
There is an excellent example of using a stateless session bean as the DAO controller for JPA. It is well done. This is followed by another excellent example of how to use DAO EJB in a web application using resource injection.
Transactions are covered in very good detail. There is an excellent table which explains the various types of container managed transactions, and the @TransactionAttribute annotation.
The real jewel of this chapter, in my opinion, is the section on Bean-Managed Transactions which includes an excellent example with all of the correct annotations.
There is a section on the new EJB Timer service. I wish they would have included a practical example, but the included example gives you a feel on how it works.
EJB Security is covered lightly. There is a great note about automatically matching Roles to Security Groups on GlassFish. It is a very well hidden feature, and one which I was not aware of. This simplifies some of the security mapping and is a great time saver.
This is another good chapter.
Chapter 10
Web Services
This chapter provides a good tutorial on Java API for XML for Web Services (JAX-WS). It has some simple examples, and demonstrates the great GlassFish web service testing facility built into the platform. The tester is a web based page which allows you to enter values and see the results, as well as, the SOAP messages (Request and Response). This is a real time saver and can help a developer check the expected messages quickly.
The chapter includes a section on how to include attachments and expose EJBs as web services.
The chapter concludes on a light coverage of web service security.
Chapter 11
Beyond Java EE
This chapter covers some alternative and complementary technologies for JSF like Facelets, Facelets Templating, Ajax4jsf (providing AJAX functionality to JSF applications), and Seam. The chapter includes some sample applications and how to install and set up these technologies.
Appendices
The appendices include coverage of using JavaMail and integrating GlassFish into various IDEs.
Again, I would recommend this book for anyone who wants to learn the basics of JEE5 programming with GlassFish.
Rating: 3 / 5
To get right to the issue, if you are new to Glassfish and Java EE than this book is for you. It does a great job of covering all the major topics of the J2EE Server, JPA, EJB 3.0, JMS, WebServices, and Security.
I was not too happy to see the Glassfish apptool used throughout the book, since that is not a part of the J2EE Standard toolset. Also the discussions of jsp, and the JavaServer Pages Standard Tag Library is overkill, and not used as much in preference for Java Server Faces, and AJAX related technology.
Where the book lacks is in detail hints, and configuration setup. Such as Glassfish Clustering, JMS Queue Management, Management, Monitoring, Logging or connecting to Load Balancers or Web Servers.
It is also hard to write a book on Glassfish without including Netbeans, which works so well with Glassfish services. I think the upcomming Netbeans 6.0 Book, should also be required to close the development circle to being productive with this tool set. The Pair of tools Netbeans 6.0 and Glassfish, is as powerful of a combination I have found. The best of the Opensource free development tools, because of the close tie to the Java Enterprise Edition Standard.
I think the Author and reviewers did a great job in presenting the information. It just seams like another book for detailed Glassfish Implementations should be created. The Sun Manuals are dry even by my Sun Certified Web/Bus/Service standards. They were not meant the explain why you need to set the options or why should you care about it, whereas books like this gives you a reason to care.
We as a community are taking this App server mainstream and better documentation and books there are out there, is the key to the promotion of such a great product that everyone has spent time making. Go Glassfish, it’s a great product.
Glassfish is my favorite to develop, and second on my list for production environments, basically because of documentation (And Cluster) issues.
Rating: 4 / 5
I do have to agree with others who remarked that the book is not a comprehensive discussion of GlassFish. In this respect, it is somewhat of a downer. But, perhaps albeit inadvertantly, its best merit is elsewhere.
Over the years, the Java world has grown hugely from just the Java language. Roughly, the latter is more or less J2SE. But in the J2EE field, or what Sun seems to just be calling EE, many extra layers of code and packages have been added. Entire books have been written on each of the topics of servlets, Java Server Pages, Enterprise Java Beans, Java Server Faces, Java Messaging Service, JDBC, Web Services and Ajax. Where do you start, if you don’t know any of these? One answer is right here. This book. Heffelfinger gives a concise overview of each topic. Enough technical details that a programmer can understand and appreciate. More to the point, you can see how these tie into each other.
Frankly, you’ll still need those other books, to do serious coding in a given topic, or between topics. But the understanding and top level view here is valuable.
Rating: 4 / 5
The book assumes that the reader has experience of Java but no previous knowledge of Java EE or J2EE. As such, this is a great book for developers who are new to this arena.
The book starts with an overview of what GlassFish is, what its competitors are and why we should use GlassFish. The introduction continues to provide details of how to download, install and verify GlassFish and finishes by exploring some of the management tasks associated with GlassFish such as managing domains, creating connection pools and configuring datasources.
Several sections of the book cover web development, including chapters on Servlets, JSPs, the JSP standard tag library and JSF. These chapters take the reader from initial concepts “What is a servlet?” and gradually build up on their knowledge by describing how to build JSF applications.
Database connectivity is covered in the book, however this assumes that the reader has some experience of SQL. The book starts by covering JDBC and how this can be used from within Java EE applications, and continues to discuss the Java Persistence API (JPA). This includes details on how to configure entity relationships with JPA, such as one-to-one and many-to-many relationships. After details and examples on how to use JPA, the reader is shown how to integrate JSF and JPA.
Moving away from web development, the book describes the Java Message Service (JMS) and how queues and topics can be defined within GlassFish and then accessed via Java code. This is taken further in the section on enterprise beans where the book discusses Message Driven Beans and how they interact with the application server. This section on enterprise beans also includes details about session beans and discusses life cycles, transactions and security.
Security is discussed in detail and explanations are provided regarding what security realms are within GlassFish and how they can be configured. Details are included about the file, certificate, LDAP, Solaris, JDBC and custom realms.
The final aspect of Java EE discussed within the book is web services. This chapter discusses how to create, deploy and test JAX-WS web services and includes details on sending attachments from web service methods and securing web services.
The final chapter of the book takes the reader beyond the Java EE standard and describes additional 3rd party technologies, namely Facelets, Ajax4jsf and Seam and describes how applications developed with these technologies can be deployed to GlassFish.
This is a highly recommended book for developers who are new to Java EE 5 development and the GlassFish Application Server.
Rating: 5 / 5
In under 400 pages, the author managed to do a pretty good job at introducing both what’s in Java EE 5 and using it on GlassFish.
If you already know EE and GlassFish and want a specific topic covered in details, then you’re probably better off picking a book on just that. Again, this book has JSF, JMS, EJBs, security, web services, and so on, but just enough to cover what most people will want and still keep it in a manageable number of pages.
Well worth my money – I don’t regret buying and reading cover to cover.
Rating: 5 / 5