J2EE developers who will like to learn about how to build a Web Services based solution. This class covers many advanced topics that will help them build a solution appropriate for a large business.
Java Training Prerequisites
Java programming. Beginner level knowledge of J2EE and XML
What you will learn
After completing this course, the student should be able to:
- Confidently design XML schema and WSDL.
- Tell the difference between different SOAP styles (document literal, RPC literal etc.)
- Implement a Web Service using Eclipse WTP and JBoss.
- Write a Web Services client using standard Java specifications.
- Register a service in a public or private UDDI registry.
- Secure web services.
- Learn the interoperability issues especially with the .NET platform.
Java Training Topics
- XML schema design
- SOAP
- WSDL
- JAXB
- JAX-WS
- JSR 921
- UDDI
- WS-Security
- Interoperability issues
- WS-Addressing
- WS-ReliableMessaging
- WS-Trust and WS-Federation
Java Training Course duration
Five Days
Java Training Course outline
1. Introduction To Eclipse
- Overview
- The Eclipse Platform
- Views, Perspective and Editor Areas
- Basic Operations with Eclipse Views and Perspectives
- The Java Perspective
- The Debug Perspective
- WTP
- The Tomcat Servlet and JSP Web Container
- The JBoss Application Server
- Java Primer
- XML Primer
- Summary
2. Introduction to Web Services
- Objectives
- A Conceptual Look at Services
- Defining Services
- Service Communication Analogy
- Three Key Service Questions
- Connecting the Dots
- SOA: Runtime Implementation
- What Is a Web Service?
- Enterprise Assets as Services
- Typical Development Workflow
- Advantages of Web Services
- Web Service Business Models
- Example: Internal System Integration
- Example: Business Process Externalization
- Binding via SOAP
- SOAP in Protocol Stack
- SOAP Structure
- SOAP Message Architecture
- Applying SOAP
- Interface via WSDL
- WSDL Structure
- Applying WSDL
- Locating a Service
- UDDI Overview
- UDDI Terminology
- UDDI Structure
- Applying UDDI
- WS-I Overview
- WS-I Deliverables
- Summary
3. Basic XML Schemas
- What is XML Schema ?
- Goals of Schema
- Converting DTDs to Schema
- Recall: Namespaces
- The equivalent schema
- Sample instance document
- Documents Needed
- XML Schema Namespaces
- Link Documents to Schemas
- Inline element declarations
- XSchema Data Types
- XSchema Type Definitions
- XSchema Simple Data Types
- Primitive Data Types
- Simple Types
- Facet Restrictions on Element Content
- Using the Facet
- More Samples
- Define Simple Element Type
- Element Declaration
- Element Occurrence Indicators
- Complex Type
- Attribute Declaration
- Attribute Declarations
- Occurrence of Attributes
- Value Constraints on Attributes
- Sequence Element
- Element Choices
- Express any order
- Annotations
4. Schema Configuration Management
- Objectives
- Evolving Schema
- Managing XML Schema
- Management Techniques
- Internal Techniques
- Schema Version Attribute
- Adding An Attribute
- Namespace Change
- File-Based Mechanisms
- External
- Which To Use?
- Summary
5. JAXB
- Objectives
- Overview of JAXB
- Advantages of JAXB
- XML Parsing APIs
- Validation using Schemas
- Java Binding
- Using JAXB
- Step 1: Binding XML to a Schema
- Binding compiler
- Interfaces and Classes
- Implementing Classes
- Step 2: Compiling the files
- Step 3: Use the generated files
- Unmarshal
- To Unmarshal
- Retrieving data
- Validation
- ObjectFactory
- Generating XML from JAXB
- Step 1: Bind the schema
- Step 2: Create the content tree
- Step 3: Marshall the content tree
- Marshall the content tree
- Validation
- Updating an XML
- Customizing your application
- Advantages
- Summary
6. JAX-WS Introduction
- Objectives
- JAX Attack
- JAX-WS Origins
- JAX-WS Architecture and Tools
- Providing a Service
- Service Source (Option 1) ...
- Service Source (Option 1)
- Service-enabling Java
- Service Source (Option 2)
- Calling a Service
- Client Source (Option 1)
- Client Source (Option 2) ...
- Client Source (Option 2)
- Advanced Features
- Summary
7. Declarative service configuration with Java 5
- Configure Eclipse for Annotations
- Start-from-Java
- JSR-181 defines eight annotations
- Core Annotations
- Hello Word Example
- @WebService Annotation Parameters
- @WebMethod Annotation Parameters
- @OneWay Annotation
- @WebParm Annotation Parameters
- @WebResult Annotation Parameters
- More Annotations
- @HandlerChain Annotation Parameters
- @SoapBinding Annotation Parameters
- Advanced Hello Word Example
- Adv. Hello Word Example Cont.
- WSDL Generated
- WSDL Generated Cont.
- Summary
8. Web services Description Language (WSDL)
- Objectives
- WSDL Overview
- WSDL Document Tags
- WSDL Namespaces
- Sample WSDL Document Structure
- <definitions>
- <import>
- <types>
- <message>
- <portType>
- <operation>
- One-way <operation>
- Request-Response <operation>
- Solicit-Response <operation>
- Notification <operation>
- Modeling Simple Operation
- Modeling Complex Operation
- Modeling Complex Message
- <binding>
- More on <binding>
- <binding> Syntax
- SOAP Binding Example
- <service> and <port>
- More on <port>
- WSDL SOAP Binding Extensions
- soap:binding
- soap:operation
- RPC or Document Style?
- WSDL API for Java
- Summary
9. Configuration Management
- Objectives
- SOA Configuration Challenges
- Service Versioning
- XML Schema Versioning
- XML Schema Versioning Guidelines
- WSDL Versioning
- WSDL Versioning (continued)
- Standards Work
- Vendor Support
- Configuration Management Tips
- Configuration Management Gotchas
- Summary
10. JAX WS 2.1 Details
- Objectives
- JAX-WS
- JAX-WS Scope
- JAX-WS and JAXB
- JAX-WS Implementers
- WSDL-to-Java Mapping
- WSDL Files
- <definitions>
- <portType>
- <types>
- <operation>
- <operation> parameters
- <fault>
- Customization Binding
- Java-to-WSDL Mapping
- The Implementation Class
- Package Name
- Class Name
- Methods and Types
- JAXB Usage
- Exceptions
- Available API
- Client API - Service
- Service
- Using Service
- Dispatch
- Provider
- WebServiceContext
- Exception Classes
- WebServiceFeature
- Annotation Support
- JAX-WS Annotations
- The Handler Framework
- Handler Invocation
- Handler Types
- Using Handlers
- Summary
11. JAX-WS Bindings
- Objectives
- Blessed be the data that binds
- JAXB 2.0 Data Binding
- The JAXB Data Binding Process
- Java Representation of XML Schema
- Default Data Type Bindings
- Data Binding Factories
- Code-first Services
- Schema-first Services
- Schema-first Binding
- Schema-first Advantages
- Customizing JAXB Bindings
- JAXB customization concepts
- Inline and External Customizations
- Passing Customization Files to the JAXB Binding Compiler
- Scope, Inheritance, and Precedence
- Customization Syntax
- Global Bindings Declarations
- Schema Binding Declarations
- Class Binding Declarations
- Property Binding Declarations
- <javaType> Binding Declarations
- Typesafe Enumeration Binding Declarations
- <javadoc> Binding Declarations
- Customization Namespace Prefix
- Tango - .Net Interoperability
- Summary
12. Simple Object Access Protocol (SOAP)
- Objectives
- SOAP Overview
- SOAP in Protocol Stack
- SOAP Components
- SOAP HTTP Request Example
- SOAP HTTP Response Example
- Message Envelope
- The Header Element
- Header Attributes
- SOAP Body
- SOAP Fault
- Communication Style
- RPC/Encoded Style
- RPC/Literal Style
- Enabling RPC Styles
- Document/Literal Style
- Document/Literal Wrapped Style
- Details of the Wrapped Style
- Enabling Document Literal Style
- Summary
13. JBoss v4 Support for Web Services
- Introduction
- Service in a Web Container
- Example Java Class
- Generated Artifacts
- JSR 109 Components
- Using wstools
- Using wstools Server Side
- Using wstools Sample config.xml
- Web Services Deployment Descriptor
- Example: webservices.xml
- The Generated WSDL File
- The WSDL Editor
- Service in a EJB Container
- Web Services Deployment Descriptor
- Client Development
- Using wstools sample config.xml
- Generated Artifacts
- The Service Reference
14. Web Services Security (WS-Security)
- The Challenges
- Public Key Infrastructure (PKI)
- Digital Signature
- Certificates
- Overview of Web Services Security
- SOAP Message Security
- Message Integrity
- Message Confidentiality
- Symmetric Encryption Example
- Authentication Using Identity Token
- Authentication
- Transport Level Security
- Audit Tracking
- Identity Assertion Using SAML
- SAML SOAP Example
15. WS-Trust and WS-Fedaration
- Objectives
- Review of WS-Security Authentication Model
- How WS-Trust Works
- WS-Federation
- Federation Metadata Example
- Requesting a Token
- Dynamic Conversation
- Summary
16. Web Services Interoperability (WS-I)
- Introduction
- Goal
- What Comes out of WS-I?
- Profiles
- Basic Profile 1.1 Highlights
- Simple SOAP Binding Profile 1.0 Highlights
- Basic Security Profile 1.0
- .NET Interoperability
17. Error Handling
- Overview
- Introduction
- Fault
- Designing Faults
- System Problems
- Business Rule Violation
- Summary
18. WS-Addressing
- Objectives
- What is WS-Addressing?
- WS-Addressing and Long Running Services
- Other Uses of WS-Addressing
- WS-Addressing SOAP Header Elements
- Example Client SOAP Request
- Example Callback SOAP Request
- Writing JAX-WS Clients to use WS-Addressing
- JAX-WS/WS-Addressing Example
- Security and Firewall Issues
- Summary
19. WS-ReliableMessaging
- Objectives
- The Problem with HTTP
- Enter WS-ReliableMessaging
- When to Use Reliable Messaging?
- How Does WS-RM Work?
- Importance of Persistence
- The Problem With Firewall
- How Does WS-MakeConnection Work?
- Using WS-MakeConnection
- Summary
20. Web Services Handlers
- Handlers
- Basic Handler Behavior
- Basic Steps
- JBoss Note
- Handler Classes
- LogicalHandlers
- Protocol Handlers
- Sample Handler
- Getting Message Details
- Inbound and Outbound
- Handler Configuration File
- Sampler Handler.xml
- Specify the Handler Chain
- Sample: Using A Handler
- Executing
- Summary
Appendix A. Best Practices
- Overview
- Architecture Best Practices
- Data Format Best Practices
- Security Best Practices
- Programming Model Best Practices
- Summary