what’s new in j2ee 1.4 sean c. sullivan portland java users group february 2004
TRANSCRIPT
What’s new in J2EE 1.4
Sean C. SullivanPortland Java Users GroupFebruary 2004
Evolution of the J2EE platform
EJB 1.0March 1998
Servlets 2.1November 1998
JSP 1.0September 1999
J2EE 1.2December 1999
J2EE 1.3September 2001
J2EE 1.4November 2003
1998 1999 20012000 2002 2003
Evolution of the J2EE platform
EJB 1.0March 1998
Servlets 2.1November 1998
JSP 1.0September 1999
J2EE 1.2December 1999
J2EE 1.3September 2001
J2EE 1.4November 2003
1998 1999 20012000 2002 2003
Agenda
• J2EE 1.4
• J2EE 1.4 SDK
• Adventure Builder
J2EE Application Server
Client J2EE Server
Database
Browser
ApplicationClient
Container
ApplicationClient
Web container
Servlet JSP
EJB container
EJB EJB
J2EE 1.4 specification
246 pages
J2EE 1.4 technologies
• Servlets 2.4
• JSP 2.0
• EJB 2.1
• JMS 1.1
• JTA 1.0.1B
• JTS 1.0
• JMX 1.2• J2EE Management API 1.0• J2EE Deployment API 1.1
• JCA 1.5• JAXR 1.0• JAX-RPC 1.1• SAAJ 1.2• JACC 1.0• JavaMail 1.2
J2EE 1.4 and Web Services
“The Java 2 Platform, Enterprise Edition version 1.4 is the most complete Web services platform ever.”
source: http://java.sun.com/j2ee/1.4/download-dr.html
Support for web services
• SOAP
• SOAP with Attachments
• WSDL
• UDDI
• SOAP transport– HTTP– HTTPS
• WS-I Basic Profile 1.0
Web service example
Web servicesclient
Stock quoteweb service
Web service example
“SUNW”
Web servicesclient
Stock quoteweb service
Web service example
“SUNW”
5.24Web services
clientStock quoteweb service
Web Services for J2EE (JSR-921)
98 pages
JSR-921
• Client programming model
• Server programming model– Web service endpoints– Service implementation beans
• Defines deployment requirements for J2EE web services
Web Service API’s
• SAAJ 1.2
• JAX-RPC 1.1
• JAXR 1.0
SAAJ 1.2 specification
125 pages
SAAJ 1.2
• a low-level API for producing and consuming SOAP 1.1 messages
• package: javax.xml.soap
javax.xml.soap
• SOAPMessage
• SOAPMessageFactory
• SOAPEnvelope
• SOAPHeader
• SOAPHeaderElement
• SOAPBody
• SOAPBodyElement
• SOAPPart
• AttachmentPart
• SOAPElement
• SOAPElementFactory
• SOAPConnection
• SOAPConnectionFactory
• SOAPException
JAX-RPC 1.1 specification
167 pages
JAX-RPC 1.1
• an API for building– web services– web service clients
• JAX-RPC is dependent upon SAAJ
# - Remote Procedure Call
JAX-RPC packages
• javax.xml.rpc
• javax.xml.rpc.encoding
• javax.xml.rpc.handler
• javax.xml.rpc.handler.soap
• javax.xml.rpc.server
• javax.xml.rpc.soap
SAAJ versus JAX-RPC
“Most developers will not use the SAAJ API, but will use the higher-level JAX-RPC API instead.” (Sun, J2EE 1.4 Tutorial)
JAXR 1.0 specification
119 pages
JAXR 1.0
• standard API for accessing XML registries
• supports UDDI and ebXML registries
JAXR packages
javax.xml.registry• Connection• RegistryService
…
javax.xml.registry.infomodel• RegistryObject• Service• ServiceBinding
…
Servlet 2.4 specification
330 pages
What’s new in Servlet 2.4?
• javax.servlet.ServletRequestListener
• javax.servlet.ServletRequestEvent
• javax.servlet.ServletRequestAttributeListener
• javax.servlet.ServletRequestAttributeEvent
What’s new in Servlet 2.4?
• improved servlet filter mapping– REQUEST– FORWARD– INCLUDE– ERROR
• SingleThreadModel is deprecated
JSP 2.0 specification
JSP 1.0 -- 112 pagesJSP 1.1 -- 158 pagesJSP 1.2 -- 268 pagesJSP 2.0 -- 478 pages
JSP 2.0
• javax.servlet.jsp.ErrorData• javax.servlet.jsp.JspContext• javax.servlet.jsp.el.FunctionMapper• javax.servlet.jsp.el.VariableResolver• javax.servlet.jsp.el.Expression• javax.servlet.jsp.el.ExpressionEvaluator• javax.servlet.jsp.tagext.DynamicAttributes• javax.servlet.jsp.tagext.JspTag• javax.servlet.jsp.tagext.SimpleTag• javax.servlet.jsp.tagext.SimpleTagSupport• javax.servlet.jsp.tagext.TagAdapter• javax.servlet.jsp.tagext.FunctionInfo• javax.servlet.jsp.tagext.JspFragment
JSP Expression Language
<input name=city value=“${location.city}”>
<input name=state value=“${location.state}”>
<input name=zip value=${location.zip}”>
Example
EJB 2.1 specification
646 pages
What’s new in EJB 2.1?
• support for web services
• EJB Timer service
• more generalized architecture for message driven beans
• EJB QL enhancements
• new deployment descriptor elements
EJB Timer Service
• enables you to schedule timed notifications
• single event timers
• interval timers
EJB Timer Service API
• javax.ejb.EJBContext– method: getTimerService
• javax.ejb.TimerService
• javax.ejb.TimedObject
• javax.ejb.Timer
• javax.ejb.TimerHandle
JMS 1.1 specification
140 pages
What’s new in JMS 1.1?
JMS 1.1 gives you the ability to use queues and topics in the same transaction
JMS API
Common interfaces
Point-to-point Pub/sub
ConnectionFactory QueueConnectionFactory TopicConnectionFactory
Connection QueueConnection TopicConnection
Destination Queue Topic
Session QueueSession TopicSession
MessageProducer QueueSender TopicPublisher
MessageConsumer QueueReceiver,
QueueBrowser
TopicSubscriber
JCA 1.5
490 pages
JCA system contracts
• Connection management (JCA 1.0)
• Security management (JCA 1.0)
• Transaction management (JCA 1.0)
• Lifecycle management (JCA 1.5)
• Work management (JCA 1.5)
• Transaction inflow (JCA 1.5)
• Message inflow (JCA 1.5)
J2EE Management API 1.0
214 pages
J2EE Management API
• defines the J2EE Management Model
• management events– event notification
• state management– start, startRecursive, stop
• performance monitoring– runtime statistics
J2EE Management events
• j2ee.object.created
• j2ee.object.deleted
• j2ee.state.starting
• j2ee.state.running
• j2ee.state.stopping
• j2ee.state.stopped
• j2ee.state.failed
• j2ee.attribute.changed
J2EE Management packages
• javax.management.j2ee
• javax.management.j2ee.statistics
J2EE Deployment API 1.0
96 pages
J2EE Deployment packages
• javax.enterprise.deploy.model
• javax.enterprise.deploy.shared
• javax.enterprise.deploy.shared.factories
• javax.enterprise.deploy.spi
• javax.enterprise.deploy.spi.exceptions
• javax.enterprise.deploy.spi.factories
• javax.enterprise.deploy.spi.status
Deployment descriptors
• J2EE 1.2 and J2EE 1.3:– defined by DTD’s
• J2EE 1.4:– defined by XML Schema (XSD)
DTD’s and Schemas
• application-client_1_4.xsd• application_1_4.xsd• connector_1_5.xsd• ejb-jar_2_1.xsd• j2ee_1_4.xsd• j2ee_jaxrpc_mapping_1_1.xsd• j2ee_web_services_1_1.xsd• j2ee_web_services_client_1_1.xsd• jsp_2_0.xsd• web-app_2_4.xsd• web-jsptaglibrary_2_0.xsd• xml.xsd
• application-client_1_3.dtd
• application_1_3.dtd
• connector_1_0.dtd
• ejb-jar_2_0.dtd
• web-app_2_3.dtd
• web-jsptaglibrary_1_2.dtd
J2EE 1.3 J2EE 1.4
web.xml - J2EE 1.3
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app> <display-name>helloworld</display-name> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>org.pjug.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping></web-app>
web.xml - J2EE 1.4
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>helloworld</display-name> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>org.pjug.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping></web-app>
Review: J2EE 1.4 technologies
• Servlets 2.4
• JSP 2.0
• EJB 2.1
• JMS 1.1
• JTA 1.0.1B
• JTS 1.0
• JMX 1.2• J2EE Management API 1.0• J2EE Deployment API 1.1
• JCA 1.5• JAXR 1.0• JAX-RPC 1.1• SAAJ 1.2• JACC 1.0• JavaMail 1.2
Not part of J2EE 1.4
• JSTL
• JavaServer Faces
• JDBC RowSets (JSR-114)
• JAXB
• Java Data Objects
• JNLP
• JMX Remote API (JSR-160)
• STAX (JSR-173)
• JCACHE (JSR-107)
• Portlets (JSR-168)
• JWSDL (JSR-110)
J2EE 1.4 SDK
• J2EE 1.4 Application Server
• Schema files– <J2EE_HOME>/lib/schemas
• Command line tools
• Sample applications
App server admin console
SDK command line tools
• appclient
• asadmin
• asant
• capture-schema
• deploytool
• jspc
• package-appclient
• verifier
• wscompile
• wsdeploy
Adventure Builder demo
Open source projects
Tomcat 5.0– http://jakarta.apache.org/tomcat
Apache Axis– http://ws.apache.org/axis/
Apache Geronimo– http://incubator.apache.org/
ObjectWeb– http://www.objectweb.org/
For more information
• http://java.sun.com/j2ee/
• http://java.sun.com/webservices/
• http://java.sun.com/blueprints/enterprise/
• http://www.jcp.org/
Backup slides
These additional slides are backup material.
JACC 1.0
• javax.security.jacc.PolicyConfiguration
• javax.security.jacc.PolicyContextHandler
• javax.security.jacc.EJBMethodPermission
• javax.security.jacc.EJBRoleRefPermission
• javax.security.jacc.PolicyConfigurationFactory
• javax.security.jacc.PolicyContext
• javax.security.jacc.WebResourcePermission
• javax.security.jacc.WebRoleRefPermission
• javax.security.jacc.WebUserDataPermission
Not covered in this presentation
• JMX 1.2
• JTA
• JTS
• JavaMail