13
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Embed Size (px)

Citation preview

Page 1: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

JBoss at WorkJAW Motors Application

Chapter 1-3Jeff Schmitt

October 9, 2006

Page 2: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

JAW Motors Application

• Fictitious automobile dealership• Each chapter progressively adds a new J2EE

technology that solves a specific business problem

• Viewing cars – JSP • Storing cars (persistence) – JDBC or Hibernate• Credit check -- JMS message and JavaMail

response• Purchasing – transactional support using

Stateless Session Beans• Sharing data between dealerships – Web Services

Page 3: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

JBoss – Application server

• Compiled Java code runs inside JVM• Java classes need a container to provide an

infrastructure, a framework to handle low-level details

• An application server is a loosely coupled collection of containers (or "services") that correspond to the various parts of the J2EE API.

• JBoss is an open-source J2EE 1.4 standards compliant application server

Page 4: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Java Management ExtensionsJMX

• JBoss is a thin JMX (Java Management Extensions) microkernel

• JMX is a framework that allows you to interact with live, running code– Start and stop services– Gather metrics– Change parameters

• Services that implement the JMX interface are called Managed beans or Mbeans– MBeans that run inside JBoss include: Log4J,

Tomcat, Hibernate

Page 5: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Tools needed

• Java JDK – J2SE 1.4 or higher• Ant – to compile, package and deploy

Java code• XDoclet – to generate deployment

descriptors, web.xml and various other J2EE configuration files.

• XDoclet is a combination of custom Ant tasks and special attributes that you include in your source code.

Page 6: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

JAW Motors Application

• Use Tomcat servlet container• JBoss is an application server, but includes

Tomcat• 3-tier application

– Presentation – JSP and servlets– Business logic – EJB and MDB’s– Persistence – relational database

• Components in each tier – Highly cohesive – components do only one thing– Loosely coupled – components have no dependences

across tiers

Page 7: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Model View Controller

• View – HTML, JSP, CSS and JSTL produce the screen contents

• Model – POJO (Plain Old Java Objects), Java Beans

• Controller – mediates communication between the view and the model -- a servlet

• Framework – many design decisions already made for you – this book is framework-neutral – uses its own controller servlet

Page 8: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

View

• carList.html

• carList-jstl.jsp – with JSTL tags – JSP scriplet defines data: carList[]

• carList.jsp – with stylesheet: default.css – data saved in pageContext

Page 9: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Model and Controller

• Model– CarBean is a POJO, is a JavaBean– carList.jsp uses JSP EL

• Controller– ControllerServlet– Action parameter indicates page indirectly– To access carList.jsp we use: <a href=“controller?

action=viewCarList”>– Controller translates action=viewCarList to access

carList.jsp

Page 10: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

JBoss Deployment

• Applicatioin Assembly– Web Archive file – a collection of presentation tier files

(HTML, JSP, Servlets, etc)– EAR – Enterprise Archive (EJB’s)– SAR – Service Archive (Web Services)– Use “jar” command to bundle them into a single file

• Application Deployment– Hot deployment -- While JBoss is running, copy the

WAR, EAR or SAR file to $JBOSS_HOME/server/default/deploy/

– Cold deployment – stop JBoss, copy the file, restart JBoss – this is the recommended deployment

Page 11: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

EAR Deployment

• EAR – Enterprise Archive• Similar to WAR – Web Archive• bundles together the pieces of a full J2EE application• keeps things organized• unpacked by server• Contains three “modules”

– Web Module – a war file for presentation– EJB Module – an EJB jar file– Java Module – Java classes jar file

• Application.xml – in META-INF directory -- a packing list – tells where you can find each file relative to the root

Page 12: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Data Access Object - DAO

• A layer of abstraction• Hides the actual persistence details behind a common

interface• For this chapter, a simple ArrayList• In subsequest chapters, Hibernate, an Object-Relational

Mapper (ORM) for relational DB• CarDAO.java

– Constructor creates ArrayList of CarDTO objects– findAll() – method to return all cars

• CarDTO.java – a Car JavaBean• ControllerServlet.java – creates CarDAO and forwards to

carList.jap

Page 13: JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006

Automated Deployment

• Ant can – compile and create WAR/EAR (build process)– Create/delete directories– Copy files– Call XDoclet tasks

• XDoclet – to generate config files (web.xml) and/or java code during the build process

• Cold deploy uses Ant task: cleandeploy• Visit http://localhost:8080/jaw