JETZT ONLINE BESTELLEN
First Edition April 2009
ISBN 978-0-596-52072-4
740 Seiten
EUR41.00, EUR41.00
Weitere Informationen zu diesem Buch
Inhaltsverzeichnis |
Kolophon |
Rezensionen |
Inhaltsverzeichnis
-
Preface
-
Overview
-
Intended Audience
-
What This Book Covers
-
How to Read This Book
-
Using Code Examples
-
Hang in There!
-
Conventions Used in This Book
-
SafariŽ Books Online
-
How to Contact Us
-
Dedication
-
Acknowledgments
-
-
SOA Fundamentals
-
Chapter 1Introduction to SOA
- Introduction
- Defining a Service
- Defining SOA
- Identifying Service Candidates
- Identifying Different Kinds of Services
- Modeling Services
- Making a Service Composable
- Supporting Your SOA Efforts
- Selecting a Pilot Project
- Establishing Governance
- Summary
-
Chapter 2XML Schema and the SOA Data Model
- Introduction
- Designing Schema for SOA
- Creating Canonical Data Model
- Using Chameleon Namespace Design
- Versioning Schemas
- Reference Schemas
- Common Schema Types
- Validating an XML Document Against a Schema
- Validating an XML Document Against Multiple Schemas
- Restricting Schema Types with Regular Expressions
- Using Schema Enumerations
- Generating Java Classes from Schema
- Generating a Schema from Java
- Generating Java Source Files from XML Schema in Ant
- Generating an XML Document Instance from a Schema
- Customizing How a Java Class Is Generated from Schema
- Validating Against a Schema During Marshaling and Unmarshaling
- Collecting Schema Validation Events During Marshaling and Unmarshaling
- Summary
-
Chapter 3Working with XML and Java
- Introduction
- Reading an XML Data Stream
- Writing XML Data Streams
- Filtering Data in an XML Stream
- Selecting Values from an XML Document
- Updating a Value in an XML Document
- Converting a Java Object into an XML Document Instance
- Converting an XML Document Instance into a Java Object
- Generating a Schema from an XML Document
- Converting XML to Java Without JAXB
- Customizing Code Generation in JAXB
- Finding the JAR That Contains a Given Class on Linux
- Transparently Substituting XML Files
- Summary
-
-
Web Services
-
Chapter 4Getting Started
- Introduction
- Using Publicly Available Web Services to Test Against
- Installing Metro
- Installing Oracle WebLogic
- Creating and Deploying the Simplest Web Service
- Creating and Deploying a Service to WebLogic
- Setting Up a Maven 2 Service and Client Project
- Understanding WSDL
- Using References in NetBeans to Generate Web Service Clients
- Monitoring SOAP Traffic with Metro
- Monitoring SOAP Traffic with TCPMon
-
Chapter 5Web Services with SAAJ
- Introduction
- Creating a SOAP Element with a Qualified Name
- Creating a Complete SOAP Message
- Writing a SOAP Response to an Output Stream
- Creating a Web Service Client Based on an Existing SOAP Envelope
- Extracting Content from a SOAP Message
- Creating a Web Service Client Using Raw XML Source and DOM
- Adding a MIME Header
- Adding Namespace Declarations
- Specifying SOAPAction
- Adding an Attribute to an Element
- Removing a Header from a SOAP Message
- Adding Headers to a SOAP Request
- Accessing All SOAP Header Elements
- Adding an Attachment to an Outbound SOAP Message
- Accessing Inbound Attachment Data
- Connecting to a SAAJ Endpoint Without a WSDL
- Working with SOAP Actors
- Asynchronous Invocation with Dispatch
- Validating Your Payload Against a Schema on the Client
- Providing a Web Service with SAAJ
- Sending and Receiving SOAP Faults
- Summary
-
Chapter 6Creating Web Service Applications with JAX-WS
- Introduction
- Calling a Web Service from the Command Line
- Using JAX-WS Annotation Name Properties
- Invoking the Simplest Web Service
- Creating a Client Proxy
- Consuming a Web Service from a Servlet or EJB
- Consuming a Web Service from a JSP
- Using a JAXB-Annotated Instance in a SOAP Message
- Using wsimport in a Maven Project
- Dealing with Version Errors in wsgen and wsimport
- Adding Headers to a SOAP Request
- Intercepting the Request to Perform Protocol-Specific Work
- Intercepting the Request to Perform Work on Your Payload
- Sharing Data Between Handler Invocations
- Passing Binary Data in a Request
- Using Binary Data in a SOAP Message
- Enabling Binary Optimization on the Client
- Validating a SOAP Payload Against a Schema with Metro
- Making Asynchronous Calls with a JAX-WS Client
- Overriding the Endpoint Address in an SEI
- Summary
-
Chapter 7Providing SOAP-Based Web Services
- Introduction
- Assembling a Service for Deployment
- Determining a Service Development Model
- Choosing Encoding, Use, and Parameter Styles
- Generating a WSDL and Portable Artifacts Based on a Java Service Endpoint Implementation
- Creating a Basic Web Service
- Specifying Namespaces
- Creating a Web Service Operation
- Specifying a Web Service Message Part
- Specifying an Operation Return Value
- Defining Zero-Argument Operations
- Defining Operations with Void Return Type
- Creating a Web Service That Uses Complex Types Based on Custom WSDL and a Custom Schema
- Specifying the SOAP Binding Style, Use, and Parameter Style
- Configuring Standard Custom Bindings
- Excluding a Public Method from a Service
- Creating a Service Provider with an XML View
- Implementing Server-Side Handler Chains
- Providing Stateful Services
- Adding a Header with a Method Parameter
- Accessing Incoming Header Parameters in a Service
- Providing a Value for SOAP Action or WS-Addressing Action
- Optimizing Transmission of Binary Content on the Server
- Getting and Sharing Data About Users and the Request
- Using Header References with Holder<T>
- Summary
-
Chapter 8RESTful Web Services
- Introduction
- Creating a POX over HTTP Service with Servlets
- A RESTful Service with JAX-WS
- Creating a Client for a RESTful Service Using Sockets
- Application: Using SSL, Atom Publishing, and the Google Finance REST API
- Setting Up the Jersey JAX-RS Implementation
- Creating a Jersey Project with Eclipse and Tomcat
- Creating Hello World with Jersey
- Creating a Single Path for Variable Resources of the Same Type
- Restricting the Structure of Values in a Path Template
- Accessing Query Parameters
- Marshaling a Custom Type to XML in a Response
- Offering Different Representations of the Same Resource
- Creating a Resource
- Working with Forms and URIs
- Using SAAJ to Access a RESTful Service
- Setting Metadata on Representations
- Deleting a Resource
- Redirecting to Another Service
- Accessing HTTP Headers
- Working with Cookies
- Working with Exceptions and Response Status Codes
- Working with WADL
- Interacting with a Resource Using a Custom Reader and Writer
- Summary
-
-
Business Processes
-
Chapter 9Service Orchestrations with BPEL
- Introduction
- Determining a Process Design Method
- Selecting a Business Process Language
- Getting Apache ODE BPEL Engine
- Deploying a Process to Apache ODE
- Understanding BPEL Process Basics
- Using a Free Graphical Designer to Create BPEL Processes
- Creating a BPEL Process That Invokes a Partner
- Deploying a BPEL Process to OpenESB’s BPEL Service Engine
- Testing a Deployed BPEL Process
- Installing Active Endpoints BPEL Designer
- Installing Active Endpoints BPEL Engine
- Creating a BPEL Process in Active Endpoints Designer
- Deploying a Process to Active Endpoints Server
- Using Web Service Partners
- Invoking a Partner Service from a BPEL Process
- Manipulating Data with BPEL Variables
- Using Literals
- Concatenating Values
- Choosing an Activity to Execute Based on Runtime Conditions
- Executing Multiple Activities in a Sequence
- Using Logical Divisions to Group Activities
- Summary
-
Chapter 10Advanced Orchestrations with BPEL
- Introduction
- Executing Activities in Parallel
- Synchronizing Activities Executing in Parallel
- Doing Nothing
- Executing an Activity at a Specific Point in Time
- Executing an Activity After a Specific Delay
- Selective Event Processing
- Handling Faults
- Explicitly Throwing a Fault
- Stopping a Process
- Performing an XSL Transformation on BPEL Message Data
- Validating Inbound Message Data
- Correlation Sets
- Looping
- Adding Human Tasks to a Business Process
- Invoking a RESTful Web Service from BPEL
- Summary
-
Chapter 11SOA Governance
- Introduction
- Assigning Roles
- Creating a SOA Roadmap
- Keeping Track of Your Services
- Determining a Data Ownership Scheme for Services
- Handling Legacy Programs and Heterogeneity Within Your SOA
- Documenting Services
- Setting Up a Service Registry
- Packaging Related Services
- Retiring a Service
- Browsing a UDDI Registry
- Querying a UDDI Registry Programmatically
- Understanding SOA ROI
-
-
Interoperability and Quality of Service
-
Chapter 12Web Service Interoperability
- Introduction
- Dealing with Arrays
- Abstracting Addressing
- Using Addressing in a Java Service
- Explicitly Enabling Addressing on the Client
- Explicitly Disabling Addressing on the Client
- Abstracting Addressing in the Transport Layer from WSDL
- Addressing Faults
- Creating a .NET Web Service Client in Visual Studio
- Creating a .NET Web Service Client in C#
- Creating a .NET Web Service
- Creating a Ruby Client for a Web Service
- Creating a Ruby Client for a .NET Service
- Conforming to the Basic Profile
- Automating Testing for Basic Profile Conformance
- Interoperability Best Practices
- Using Modular WSDLs
-
Chapter 13Quality of Service
- Introduction
- Understanding Reliable Messaging
- Configuring a Java Web Service with Reliable Messaging
- Configuring a Java Client with Reliable Messaging
- Configuring a Java Web Service with Reliable Messaging on WebLogic
- Using a WebLogic Reliable Messaging Error Handler
-
Chapter 14Enterprise Service Bus
- Introduction
- What Is ESB?
- ESB As a Set of Patterns
- JBI
- Commercial ESBs
- Open Source ESBs
- Summary
-
-
Colophon
Zurück zu Java SOA Cookbook
