J-410 - Developing Java Web Services
Course
J-410
Price:
$1,795.00
Software Assurance Value:
Not Eligible
Duration:
3 Days
SQLSoft Course J-410 Deploying Java Web Services
Table of Contents
Introduction
Audience
At Course Completion
Prerequisites
Certified Professional Exams
Student Materials
Course Outline
Introduction
J-410, Deploying Java Web Services introduces the next evolution of
Java components: Web Services. It prepares Java programmers to develop Web services
and clients according to the Web Services Interoperability (WS-I) Organization's
WS-Basic profile, using SOAP 1.1, WSDL 1.1 and XML Schema 1.0. (WS-Basic also
calls for UDDI, which has more to do with publishing than development.)
Students get an overview of the interoperable and Java-specific Web services
architectures, and then learn the standard APIs for SOAP messaging and WSDL-driven,
component-based service development. Both document-style and RPC-style messages
and services are covered in depth.
For an overview of all of our Java training, visit the Java
Curriculum page. You will find descriptions of different skill levels and
Java platforms (J2SE, J2EE) you may encounter as a Java Developer.
Return to Top
Audience
Experienced XML and Java component developers who need to develop and publish
web services applications on the Internet.
Return to Top
At Course Completion
At the end of this course, the student will be able to:
- Describe how and why “Web Services” came to be
- Describe Web Services Architecture
- Describe the advantages of the Web Services Architecture
- Describe Web Services Interoperability (WS-I)
- Use SOAP (Simple Object Access Protocol)
- Use WSDL (Web Services Definition Language)
- Use IDL (Interface Definition Language)
- Build and host a Web Service
- Generate a simple Web Service Client
- Use the J2EE Reference Implementation
- Use the Ant build tool
- Build Java Web Services
- Describe the interplay between Web Services and J2EE
- Use JAXP (Java API for XML Processing)
- Use JAXB (Java API for XML Binding)
- Use SAAJ (SOAP with Attachments API for Java
- Use JAXM (Java API for XML Messaging)
- Implement a SAAJ/JAXM service
- Implement a JAX-RPC service (Java API for XML – Remote Procedure Call)
- Describe the Service Life Cycle
- Declare and use SOAP Namespaces
- Build SOAP Headers and Envelopes
- Generate Web Services from Java code (Java-to-WSDL)
- Generate Java Web Services from WSDL (WSDL-to-Java)
- Describe Best Practices for Web Services
- Use EJBs and JSPs with Web Services
- Describe security threats and solutions for Web Services
Return to Top
Prerequisites
Before attending this course, students must have:
- A working knowledge of XML, through either:
- I-104, XML Quickstart
—OR—
- I-105, XML Quickstart for Programmers
- A working knowledge of programming in Java, through either:
Return to Top
Certified Professional Exams
This course will help the student prepare for the following Certified Professional
exams:
- No exam currently exists for this course.
For more detailed information about curriculum paths and exams, see the Java Developer Certification pages.
Return to Top
Student Materials
The student kit includes a workbook and other necessary materials for this
class.
Return to Top
Course Outline
Interoperable Web Services
- A Brief History of IT
- Motivation for Web Services
- From HTML to XML to SOAP
- B2B Example - Supply Chains
- B2C Example - Rental Housing
- What is a Web Service?
- Web Services - Who Needs 'Em?
- Understanding Web Services
- HTTP
- XML
- Web Services Architecture
- Interoperability Stacks
- Stacks and Solutions
- SOAP
- The SOAP Envelope
- Example - A Simple SOAP Message
- WSDL
- WSDL Bindings
- Example - A WSDL Document
- UDDI
- The WS-I Basic Profile
- Support for the WS-I Basic Profile
- The REST of the Story
- A SOAPy Mess
- The REST Architecture
- What Is a Web Service, Again?
Building and Hosting Web Services
- Hosting Web Services
- Web-Service Scenarios
- Bare-Bones - SOAP Alone
- Client Generation Using WSDL
- Both Server and Client from WSDL
- Publishing and Inquiry Using UDDI
- The J2EE Reference Implementation
- The Ant Build Tool
- Working with AS8
- Starting and Stopping the Server
- Development and Administrative Tools
- The JAXM Reference Implementation
- Demo - A Running Web Service
- Demo - See SOAP Run
The Java Web Services Architecture
- Java and Web Services
- Advantages of Java for Web Services
- Web Services and J2EE
- Web Service Endpoints
- Java and XML
- Implementing Web Service Standards
- Example - The SOAP Sniffer
- Web Services as J2EE Components
- The Java API for XML Processing
- The Java API for XML Binding
- SOAP with Attachments API for Java
- The Java API for XML Messaging
- Implementing a SAAJ/JAXM Service
- Example - SAAJ/JAXM Math Service
- The Java API for XML-Based RPC
- The wscompile Tool
- Implementing a JAX-RPC Service
- Example - JAX-RPC Math Service
- Service Lifecycle
- SAAJ/JAXM vs. JAX-RPC
- Strong Typing for Web Services
- Java-to-WSDL vs. WSDL-to-Java
- Sessions, Security and Transactions
- Working with SOAP Headers
- The Java API for XML Registries
The Simple Object Access Protocol
- SOAP-Based Web Services
- Messaging Over the Web
- The SOAP Messaging Model
- Declaring and Using Namespaces
- Multiple Namespaces
- SOAP Namespaces
- The SOAP Envelope
- The Message Header
- Header Entry Attributes
- Example - Document Routing
- The Message Body
- SOAP Over HTTP
- SOAP Over SMTP
- Example - Bidding on an Auction
- SOAP Over FTP
- SOAP Faults
- SOAP Tools
- The SOAPPad
- Using SOAPPad
- Validating SOAP Messages
- Schema vs. Service Descriptors
- Demo - A SOAP Message Validator
- Messaging Styles
- Data Encoding
- Service Model vs. Encoding
- The encodingStyle Attribute
- The SOAP "Section 5" Encoding
- Encoding Arrays
- Avoiding Redundant Serialization
- Multiple-Reference Values
- Down-Sides of Multi-Reference Values
- Attachments
The SOAP With Attachments API for Java
- SOAP with Attachments API for Java
- The SOAP Message API
- The SOAPMessage Class
- The SOAPPart Class
- The Name Interface
- The SOAPEnvelope Interface
- The SOAPHeader Interface
- The SOAPBody Interface
- Node Types
- The Node Interface
- The SOAPElement Interface
- SOAPElement Semantics
- Parsing by Element Name
- Example - The SOAPViewer
- Integration of SAAJ and the DOM
- Using DOM Methods on SAAJ Trees
- The Love Is Blind Dating Service
- The SOAP Fault
- Creating SAAJ Objects
- Creating a Message
- Setting Message Content
- Managing Namespaces
- Managing Qualified Names
- Example - The Math Response
The Java API for XML Messaging
- Java Messaging APIs
- The Java API for XML Messaging
- JAXM and J2EE
- Point-to-Point Messaging
- The JAXM Message Provider
- A JAXM Roundtrip
- Implementing a SAAJ/JAXM Service
- JAXM on the Server Side
- The JAXMServlet Class
- The ReqRespListener Interface
- Example - The Math Service
- Love Is Blind - The User Interface
- Love Is Blind - The Domain Model
- Demo - The Web Application
- JAXM on the Client Side
- Sending a SOAP Message
- Example - Invoking the Math Service
- Applying JAXP Code in Web Services
- Example - The Lumberyard
Web Services Description Language
- Component-Based Software
- Component Models
- Web Services as Components
- A World Without Type Information
- The Need for Service Description
- An IDL for Web Services
- Web Services Description Language
- WSDL Namespaces
- The WSDL Description Model
- Example - A WSDL Document
- WSDL Descriptors as Schema
- The Schema for WSDL Descriptors
- Associations Between Components
- Interface Description
- Messaging Scenarios
- Operations: Input, Output, and Fault
- Messages
- The Order-Tracking Service
- Code Generation
- Service Description
- Extending WSDL
- The Binding Component
- A Structural Pattern
- The SOAP Binding
- Example - Binding for Math
- Document vs. RPC Style
- Encoded vs. Literal Use
- The HTTP Binding
- Demo - Dynamic Invocation
- Deploying WSDL
The Java API for XML-Based RPC
- The Java API for XML-Based RPC
- Two Paths
- How It Works - Build Time
- How It Works - Runtime
- Mapping XML and WSDL to Java
- Supporting Classes
- The wscompile Tool
- Generating from WSDL
- Demo - Generating from Math WSDL
- What Gets Generated
- What the Application Sees
- Mapping Java to WSDL and XML
- Generating from Java
- Demo - The PigLatin Service
- What Gets Generated
- Which Way To Go?
- Web Services for J2EE
- Deploying JAX-RPC Web Services
Generating Web Services from Java Code
- The Java-to-WSDL Mapping
- Literal and Encoded Uses
- Primitives
- Standard Classes
- Value Types
- JavaBeans Conventions
- Value Type Example
- Collections
- Service Endpoint Interface
- Scope of Code Generation
- Inheritance Support
- Multi-Tier Application Design
- Analyzing the Domain
- Analyzing Love Is Blind
- Deploying the Service
- Example - Adding a SOAP Interface
- When Things Don't Fit
- Service Endpoint Interface Misfits
- Value Misfits
Generating Java Web Services from WSDL
- The XML-to-Java Mapping
- Built-In Simple Types
- Derived Simple Types
- Lists
- Complex Types
- Generated Value Types
- Enumerations
- Example - Love's Not That Blind
- SOAP Arrays
- Miscellaneous Types of Types
- The WSDL-to-Java Mapping
- Mapping Inputs and Outputs
- Examples - Inputs and Outputs
- Single-Output Operations
- Building a Service Client
- Scope of Code Generation
- Service Stubs
- Locating a Web Service
- Example - Love Is Blind Client
- Client-Side Validation
- Building Services from WSDL
- Implementing the Service Endpoint
- Example - JAX-RPC 1.1 Type Support
Best Practices and Techniques
- Pros and Cons: Java-to-WSDL
- Pros and Cons: WSDL-to-Java
- Interoperability
- WSDL-to-Java Interoperability
- Controlling Names and URIs
- Example - The Names Projects
- Polymorphism
- Polymorphism for Web Services
- The Most-Derived, Published Type
- Example - Polymorphism
- The Dynamic Invocation Interface
- Passing Objects
- Performance Patterns
- The Web-Service Mediator
- Extensible Type Mapping
- Another CORBA?
EJB, JSP and Web Services
- The Big Picture
- Enterprise JavaBeans
- Three Tiers for J2EE
- EJB 2.1 and JAX-RPC
- Session Beans as Service Endpoints
- The Bean's Web Service Interface
- SOAP as an RMI Transport
- Example - A Math EJB
- Example - A Shareware Web Service
- "Gotchas"
- JSP and XML
- The JSP Standard Tag Library
- JSP, JSTL and SOAP
- Reading SOAP Using XPath
- Example - A JSP Web Service
- Using XSLT
- JSPs as Web-Service Clients
- JAXM and SAAJ Custom Tags
- JSTL, XPath and Namespaces
Service Lifecycle and Message Handlers
- Web Services as J2EE Components
- Package Summary
- The ServletEndpointContext Interface
- Using JNDI in a JAX-RPC Service
- SOAP Headers
- Handling SOAP Headers
- Servlet Endpoint Context
- EJB Endpoint Context
- The Message Context Interfaces
- Example - Adjusting Measurements
- JAX-RPC Message Handlers
- JAX-RPC Handler Interfaces
- Processing Patterns
- Handler Chain Interactions
- Handler Processing Model
- The Handler Interface
- AS8 and JAX-RPC Handlers
- Configuring Handler Chains
- Session Management
- Example - Stateful Matchmaking
SOAP Attachments
- SOAP with Attachments
- Attachments in J2EE Web Services
- SAAJ Object Model, Revisited
- The SOAPMessage Class, Revisited
- Multipurpose Internet Mail Extensions
- The Java Activation Framework
- The DataHandler Class
- SAAJ MIME Types
- The MimeHeaders Class
- Adding Attachments
- The AttachmentPart Class
- Identifying Attachments
- Reading Attachments
- Example - Images in Love is Blind
- Attachments in JAX-RPC
- General MIME Support
- Specific MIME Types
Security
- Web Services and Security
- Threats
- Techniques
- Technology
- Private-Key Encryption
- Public-Key Encryption
- Digital Signatures
- Solution Levels
- J2EE Solutions
- Demo - Securing a Service
- XML and SOAP Solutions
- XML Encryption and Signature
- WS-Security
- Example - A Secure SOAP Message
- SAML
- XACML
Appendix A: Learning Resources
Appendix B: W3C and Web-Service Namespaces
- W3C Namespaces
- Web-Service Namespaces
Appendix C: Basics of XML and XML Schema (Online Reference)
Return to Top