610 likes | 826 Views
What’s new in J2EE 1.4. Sean C. Sullivan Portland Java Users Group February 2004. Evolution of the J2EE platform. Servlets 2.1 November 1998. J2EE 1.2 December 1999. J2EE 1.4 November 2003. 1998. 1999. 2000. 2001. 2002. 2003. EJB 1.0 March 1998. JSP 1.0 September 1999.
E N D
What’s new in J2EE 1.4 Sean C. Sullivan Portland Java Users Group February 2004
Evolution of the J2EE platform Servlets 2.1 November 1998 J2EE 1.2 December 1999 J2EE 1.4 November 2003 1998 1999 2000 2001 2002 2003 EJB 1.0 March 1998 JSP 1.0 September 1999 J2EE 1.3 September 2001
Evolution of the J2EE platform Servlets 2.1 November 1998 J2EE 1.2 December 1999 J2EE 1.4 November 2003 1998 1999 2000 2001 2002 2003 EJB 1.0 March 1998 JSP 1.0 September 1999 J2EE 1.3 September 2001
Agenda • J2EE 1.4 • J2EE 1.4 SDK • Adventure Builder
J2EE Application Server Client J2EE Server Web container Browser Servlet JSP Database Application Client Container Application Client 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 services client Stock quote web service
Web service example “SUNW” Web services client Stock quote web service
Web service example “SUNW” Web services client Stock quote web service 5.24
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 pages JSP 1.1 -- 158 pages JSP 1.2 -- 268 pages JSP 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
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 J2EE 1.3 J2EE 1.4 • 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
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>