Chapter 3. Scratch to Production
The way to get started is to quit talking and begin doing.
— Walt Disney
Enterprise Java has long suffered the (possibly correct) critique that it’s difficult to bootstrap a new project. Couple the lack of definitive jumpstart documentation with vendor-specific techniques for application deployment, throw a mess of third-party dependencies into the mix, and we’ve got a prime recipe yielding barriers to entry for programmers new to web development in Java.
Of course, this all runs contrary to the mission of Java EE: to make our experience with enterprise features easier. So while the programming model has certainly evolved past the days of confusingly verbose and explicitly required metadata, the warts that lead to frustrating stack traces and unexpected deployment behaviors unfortunately persist.
Some of this is by design. The specifications that comprise the Java EE Platform intentionally leave room for vendors to implement features like server startup and deployment at their discretion. (Although there is some limited facility to, for instance, create an EJB container in a running JVM and bring EJB deployments on the classpath into service, a full-scale deployment is still typically achieved in a vendor-specific manner.)
In the interest of providing a uniformly workable solution to the reader, this text will routinely opt for vendor-specific approaches in favor of generic guidelines. By the end of this chapter, you should be comfortable creating a ...