Developing Java Web Services – 5 Days
Developing Java Web Services is a comprehensive look at the state of the art in developing interoperable web services on the Java EE 6 platform. Students learn the key standards for both SOAP-based and RESTful services, and the Java architectures that have evolved to build interoperable services and clients.
We begin with an introductory module that covers both SOAP-based and RESTful services, and therefore both JAX-WS and JAX-RS. We then discuss JAXB, as this highly useful XML API is integral to both.
The remainder of the course is split between two larger modules, each of which falls on one side of the fence: either SOAP services with JAX-WS, or RESTful services with JAX-RS. We cover SOAP, WSDL, and both WSDL-driven and Java-driven development paths for JAX-WS, as well as client-side development. Then students work with the Jersey implementation of JAX-RS to create RESTful services, from simple single-value interactions to more sophisticated services that manage CRUD (create/retrieve/update/delete) operations on more complex data types, using JAXB to marshal and unmarshal data over the wire.
What You Will Learn
- Be able to describe the interoperable web services architecture, including the roles of SOAP and WSDL in component-based services and XML and HTTP in the REST architecture.
- Understand the importance of the WS-I Basic Profile for interoperable web services.
- Build JAX-WS services and clients that take full advantage of the automated data binding of JAXB.
- Build WSDL-to-Java and Java-to-WSDL services, with equal facility.
- Use JAX-RS to develop simple RESTful services.
- Control dispatching to service methods based on URL patterns and HTTP methods.
- Bind request values to method parameters when expressed as HTTP query parameters, form values, headers, cookies, and more.
- Manage XML content using XML Schema and JAXB.
- Incorporate XML entities into service input and output.
- Take advantage of lifecycle and context services available to JAX-RS services as Java EE components.
- Strong Java programming skills are essential. Java Programming is excellent preparation.
- Students must be able to read XML documents and to write well-formed XML by hand — consider Intro to XML. Knowledge of XML Schema will be helpful, too, but is not a strict prerequisite — consider the XML Schema course.
- Experience with other Java EE standards, especially servlets and JSP, will be very helpful in class, but is not strictly required.
Chapter 1. Overview of Web Services
- Why Web Services?
- Service-Oriented Architecture
- HTTP and XML
- The SOAP Vision
- The REST Vision
- The WS-I Basic Profile
Chapter 2. Web Services for Java EE
- Hosting Web Services: Scenarios
- Web Services for Java EE
- JAX-WS and JAXB
- Web-Services Metadata
- WSDL-to-Java and Java-to-WSDL Paths
- Provider and Dispatch APIs
- SAAJ and JAXP
- JAX-RS for RESTful Services
Chapter 3. The Java API for XML Binding
- The Need for Data Binding
- XML Schema
- Two Paths
- JAXB Compilation
- Mapping Schema Types to Java
- Java-to-XML Mapping Using Annotations
- Marshaling and Unmarshaling
- Working with JAXB Object Models
Chapter 4. The Simple Object Access Protocol
- Messaging Model
- SOAP over HTTP
- The SOAP Envelope
- The Message Header
- The Message Body
- SOAP Faults
Chapter 5. Web Services Description Language
- Web Services as Component-Based Software
- The Need for an IDL
- Web Services Description Language
- WSDL Information Model
- The Abstract Model — Service Semantics
- Message Description
- Messaging Styles
- The Concrete Model — Ports, Services, Locations
- Extending WSDL — Bindings
- Service Description
Chapter 6. The Java API for XML-Based Web Services
- Two Paths
- How It Works: Build Time and Runtime
- The Service Endpoint Interface
- Working from WSDL
- Working from Java
- RPC and Document Styles
- One-Way Messaging
- Binary Protocols
Chapter 7. WSDL-to-Java Development
- The @WebService Annotation
- Generated Code
- Scope of Code Generation
- Parameter Order
- More JAXB: Mapping Collections
- More JAXB: Mapping Enumerations
- Applying JAXB Customizations
Chapter 8. Client-Side Development
- Stubs and Proxies
- Generated Code
- Locating a Service
- Invoking a Service
- The @WebServiceRef Annotation
Chapter 9. Java-to-WSDL Development
- Generating the WSDL and Schema
- The @WebMethod, @XmlParam, and Related Annotations
- More JAXB: Mapping Inheritance
- Controlling the XML Model
- Controlling the WSDL Description
- JAXB Customizations with @XmlJavaTypeAdapter
Chapter 10. The Java API for RESTful Services
- Scanning and @ApplicationPath
Chapter 11. Dispatching Requests to Methods
- The Application Path
- The @Path Annotation
- The HTTP Method Annotations
- Sub-Resource Locators
- Annotation Inheritance and overriding
Chapter 12. Parameter and Return Types
- Simple Parameter Types
- @Consumes and @Produces Annotations
- @XXXParam Annotations
- The @DefaultValue Annotation
- Return Types
- Binary Content
- Delivering a File
Chapter 13. Entities and Complex Content
- Entity Providers
- Built-In Entity Providers
- Working with XML
- Driving XML Representations from Schema
Chapter 14. Context and Lifecycle
- Reading Web Resources
- Finding Java EE Components
- Finding Databases
- Security Contexts
Appendix A. Course Tools and Utilities
Appendix B. Handy Guide to Web-Services Acronyms
Server Support: GlassFish
- This version of the course works with the GlassFish server. Our Java EE courses are available in variants that support various server products, including Tomcat, GlassFish, JBoss, and WebLogic. For more details, and to find a desired server-specific version of a course, see our server-support matrix.
IDE Support: Eclipse Helios
- In addition to the primary lab files, an optional overlay is available that adds support for Eclipse Helios. Students can code, build, deploy, and test all exercises from within the IDE, and take advantage of built-in editors, integrated debugging, etc.
|Hardware Requirements (Minimum)||Core 2 Duo, 1.5 GHz, 2 gig RAM, 1 gig disk space.|
|Hardware Requirements (Recommended)||Core 2 Duo, 2.5 GHz GHz, 4 gig RAM, 1 gig disk space.|
|Operating System||Tested on Windows 7 and Windows XP Professional. Course software should be viable on all systems which support a Java 6 Developer’s Kit.|
|Network and Security||Limited privileges required|
|Software Requirements||All free downloadable tools.|
Other Courses to Explore
Don’t forget to check out our monthly specials to save – Monthly Specials