Complete Java Web Services Training INT2235; 4 Days; Instructor-led Course 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. Course 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 Intertech s 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 WSDL Abstract WSDL Concrete Style and Use 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