$2,595.00
Duration | Four Days |
Description
Duration: 4 Days
Description
The Complete Java Web Services class teaches students how to build Web Services and Web Service clients using Java technologies. The class includes a high-speed introduction to XML namespaces, XML Schema, SOAP, and WSDL before exploring Web service client or server-side development in Java APIs and tools. Specifically, this class focuses on JAX-WS.
Learning Objectives
- Understand how Web services relate to Service Oriented Architecture.
- Become familiar with the pillar Web service specifications for XML, XML Schema, SOAP, WSDL and UDDI.
- Pick up design patterns and best practices for Web service interface documents.
- Experience the development of Java Web services using the JAX-WS API.
- See how WSDL and Schema elements map to Java objects.
- Recognize and understand the difference between RPC and Document styled services.
- Learn how to make and test Web services that are highly interoperable.
Audience
This class intended for developers that are going to implement SOAP-based Web services or Web service clients in Java. Attendees should already have a good grasp of Java and server side development. Attendees should already have a basic understanding of XML.
Prerequisites
Students should have a good understanding of the Java programming language and a basic understanding of XML. Students that have attended the Complete Java have the necessary background for this course.
Course Outline
SOA and Web Services Introduction
- Service Oriented Architecture (SOA)
- SOA – the architectural pattern
- How is SOA accomplished? The SOA Principles
- Benefits of SOA
- Web Services and SOA
- Web Services
- Web Service Standards
- Standard Managers
- Java and Web Services
XML Namespaces
- XML Name Conflicts
- Namespaces
- The Namespace Identifier
- Qualified and Unqualified Names
- Global and Local Scope
XML Schema
- XML Schema Specification
- A Simple Schema Example
- XML Schema and Namespaces
- The Schema Document
- Schema Root Element
- Element Definitions
- Complex Element Definitions
- Attribute Definitions
- Element and Attribute References
- Abstract Data Types
- Target Namespaces
- Importing vs. Including Schemas
- Validating Documents
Schema Best Practices and Patterns
- Designing Good Schemata
- Design Goals
- Naming Conventions
- Enumerations
- Element vs. Type
- Element vs. Attribute
- Global vs. Local
- Qualified vs. Unqualified
- Default Namespace
- Miscellaneous Schema Design Tips and Conventions
- Common Schema Design Patterns
SOAP
- What is SOAP?
- SOAP Specifications
- SOAP Basics
- The SOAP Envelope
- The SOAP Header
- SOAP Header Attributes
- The SOAP Body
- SOAP Faults
- SOAP and Protocol
WSDL
- What is WSDL?
- WSDL Specification
- The WSDL Document
- WSDL by Example
- WSDL <definitions>
- WSDL Abstract
- <portType>
- <message>
- <types>
- WSDL Concrete
- <binding>
- Style and Use
- <service>
- WSDL 2.0
- WS-I Testing Tools
Java Web Service APIs
- How are WSDL and Schema Used?
- Web Service Frameworks
- Development Approaches
- Java and XML Processing
- API Overview
- JAX-WS
- SAAJ
- JAXB
- JAXP
- JAXR
- JAX-RS
XML to Java mapping
- How does WSDL and schema map to Java?
- Mapping Tools
- Target Namespace Mapping
- WSDL portType Mapping
- Type Mapping
Java Web Service Development
- Bottom-Up Java Web Service Development
- JAX-WS Annotations
- JAXB Annotations
- POJO Requirements
- Top-Down Java Web Service Development
- JAX-WS Web Service as an EJB
- Enterprise Deployment
Java Web Service Clients
- Dynamic Proxy Clients
- Dispatch Clients
- Asynchronous Clients
Handlers
- JAX-WS Handlers
- SOAPHandlers
- LogicalHandlers
- Handler Chains
- Managing Handlers
Web Services Security
- Securing Web Services
- SSL/TLS
- SSL/TLS Benefits and Issues
- WS-Security
- WS-Security Authentication
- WS-Security Message Integrity
- WS-Security Encryption
- WS-Security Benefits/Issues
- Basic Security Profile
WSS4J
- WS-Security and Java
- Review of the ManageOrder Web Service/Client
- WSS4J Setup
- WSS4J Services
- WSS4J Authentication
- WSS4J Signature
- WSS4J Encryption
- More to WSS4J
Appendix A – XML Syntax
- An XML History
- HTML
- XML vs. HTML
- XML Syntax
- Elements
- Attributes
- Attribute vs. Element
- XML Miscellaneous
- Well-Formed
Appendix B – Advanced XML Schema
- Non-atomic Simple Types
- Restrictions and Facets
- Extensions
- Groups
- Defining the type of Element Content
- Any
- Commenting Schema
Appendix C – Versioning
- Versioning
- Classifying Changes
- Handling Backward Compatible Change
- Handling Non-Backward Compatible Change
- Behavioral Change
- WSDL Versioning
Appendix D – UDDI
- UDDI Basics
- UDDI Servers
- Is a UDDI registry required?
- Registry System
- Interacting with a UDDI Registry
Appendix E – DOM, SAX, StAX and JAXP
- Java API for XML Processing (JAXP)
- DOM
- The DOM API
- DOM and JAXP
- SAX
- SAX and JAXP
- StAX
- StAX and JAXP
- DOM vs. SAX vs. StAX
- XSLT & XPath
- XSLT and JAXP
Appendix F – SAAJ
- SOAP with Attachments API (SAAJ)
- SOAPMessage
- Working with the Envelope, Header, Body
- Adding Elements/Attributes
- Adding CDATA
- Adding Attachments
- SAAJ Request/Response
Appendix G – Spring-WS
- Spring-WS
- Spring-WS MessageDispatcherServlet
- Endpoint
- Endpoint Mapping
- Endpoint and Endpoint Mapping Annotations
- Parameter Annotation
- Exception Handling
- Publishing WSDSL
- Interceptors
- Securing Web Services
- Web Service Clients