JAXB ve JAXWS ile Web Servisleri Geliştirme
Kurs Dili: Türkçe/İngilizce
Süre: 2 gün
Kurs, Web servisleri geliştirilmesinde deneyim sahibi olan ve bu kapsamda Java Web Servislerinde
JAXB and JAXWS kullanımı konusunda birikim edinmek isteyen
uzmanlar için tasarlanmıştır.
Bu kurs, tamamen Java'nın temel web servis teknolojileri üzerine düzenlenmiştir: JAX-WS.
JAX-WS kurs süresince hem tabandan tepeye (önce Java) hem de
tepeden-tabana (önce WSDL) bir yaklaşımla irdelenmektedir. Farklı özelleştirmeler de
(binding declarations ve Java annotations) kurs içeriğinde kapsanmaktadır.
JAX-WS, XML bağı için JAXB kullanır; Bu nedenle de "JAXB-xml binding framework" kurs kapsamında
ayrıntılı olarak ele alınmaktadır (hem Java hem de XML
tabanlı geliştirme yaşam döngüsü perspektiflerinden). Bu temel teknolojilerin anlatılmasını
takiben ilişki içinde olduğu XML güvenlik standartlarını (W3C XML
şifrelemesi ve XML imzaları) da kapsayarak WS-Security 1.1 dünyasına ve WS-Security'ye has
token profillerine de (X509, Username, SAML vs.) bir giriş yapılmaktadır.
Kimler katılabilir? Java EE, XML, XML şemaları, SOAP ve WSDL
konularında deneyimli, Java yazılım mimarisi ve yazılım
geliştirme konusunda çalışan profesyoneller.
Kurs İçeriği
Session 1: Introduction to JAXB 2.x
Lesson: JAXB Overview
- Introduce JAXB 2.x
- List the goals of JAXB 2
- Explain the architecture of JAXB
- Introduce the XML to Java mapping
- Introduce the concept of a Value Class
- Explain handling of naming differences between XML and Java
- Introduce the ObjectFactory
- Introduce JAXB Binding Declarations
- Explain how these binding declarations are provided
- Introduce key JAXB annotations
- Introduce the core API of JAXB and how to configure the JAXB implementation
- Understand and use the JAXBContext class
- Understand and use the core functionality of the Marshaller and Unmarshaller
- List possible input sources and sinks
Lesson: XML to Java binding
- Understand how Simple types are mapped to Java
- Understand how simple types derived by list and union mapped
- Understand the difference between indexed and list collection properties
- Use binding declarations to customize this bindings
- Understand how simple types with enumeration facet(s) are bound to Java
- Use binding declarations to configure enum binding
- Understand how complex types are bound to Java (Value Classes)
- Understand the relation between value classes and elements
- Understand how complex types with simple and complex content models are mapped
- Understand how model groups are mapped (sequence, choice etc)
- Understand how wildcard particles are mapped
- Understand how element particles are mapped
- Understand when a general content property is used to bind a complex type
- Understand where and how collection of element types is used
- Use binding declarations to customize the binding of complex types to Java
- Understand different ways of binding elements to Java
- Understand the JAXBElement (its rational, importance and usage)
- Understand the relation with its type (e.g., with value classes)
- Use binding declarations to customize the binding of element declarations to Java
Lesson: Java to XML binding
- Provide the default mapping of Java to XML
- Explain all JAXB annotations to configure the Java to XML binding
- Explain different package level annotations
- Explain different class level annotations
- Explain different property level annotations
Session 2: JAX-WS
Lesson: JAX-WS Overview
- Understand what JAX-WS is
- Understand the JAX-WS Architecture in detail
- Understand the JAX-WS 2.1 Specification
- Understand the role of WSDL
- Discuss bottom-up versus top-down service realization
- Overview of the WSDL and Java Mapping and vice versa
- Introduce the two APIs (client/service side)
Lesson: Building a JAX-WS Client
- Understand the static service use
- Understand how to build a JAX-WS client using a given WSDL
- Understand the internal sequence of service invocation (OSD)
- Understand dynamic service use
Lesson: Service realization using JAX-WS
- Recap the two models: bottom-up and top-down
- Understand the dynamic programming model
- Understand the different Provider<T> implementations
- Understand the static programming model
- Understand the developments steps for bottom-up
- Understand the developments steps for top-down
- Customize Java to WSDL mapping using JAX-WS and Web Services Metadata (JSR 181) annotations
- Appreciate the use of JAXB 2.1 annotations (JSR 222)
- Configure the SOAP Binding
- Understand JAX-WS exception handling
- Add Service Endpoint exception and map these to SOAP faults
- Use the SOAP 1.1 HTTP Binding
- Add support for MTOM/XOP
- Understand lightweight Endpoint and Servlet container deployment
Lesson: Advanced JAX-WS
- Understand the Handler Framework
- Understand the difference between logical and protocol handlers
- Understand the API and accessible classes for each handler type
- Understand the life-cycle of a handler
- Using the Catalog Facility
- Implement handlers that operate on header elements
- Understand different ways of configuring handler chains
- Understand how to manage state in handlers (e.g, MessageContext)
- Understand the structure of an OASIS 1.1 Catalog file
Session 3: Security
Lesson: Web-Security 1.1 introduction
- Understand that transport layer security (e.g. SSL and HTTPS) is not always an option.
- Describe the seven specification in the IBM/Microsoft Security Road map
- Understand the scope of WS-Security
- Introduce XML Digital Signatures
- Introduce XML Digital Encryption
- Understand the concept of and the need for Canonicalization
- Introduce security tokens
- Understand the relationship with the WS-Trust specification
- Understand the role of XML Key Management Specification (XKMS) and PKIs
- Describe other security specifications (WS-SecurityPolicy ,WS-SecureConversation, WS-Federation)