Skip Headers
Oracle® Application Server Advanced Web Services Developer's Guide
10
g
(10.1.3.1.0)
Part Number B28975-02
Home
Book List
Index
Master Index
Contact Us
Next
View PDF
Contents
List of Examples
List of Figures
List of Tables
Title and Copyright Information
Preface
Intended Audience
Documentation Accessibility
Related Documents
Conventions
1
Ensuring Interoperable Web Services
Why is Interoperability Necessary?
Web Service Interoperability Organizations
General Guidelines for Creating Interoperable Web Services
Common Tips for Diagnosing and Solving Interoperability Issues
Invalid or Improperly Formatted WSDL
WSDLs Containing Proprietary Data Binding Extensions
Illegal XML Characters
Out of Sync SOAPAction Values
Understanding the soapAction WSDL Attribute
Null Values in SOAP Messages
Unsigned Schema Numeric Types
Loss of Precision
Tool Support for Interoperability
Capturing the Web Service Contract
Replaying the Message Payload
Analyzing the Interaction
Obtaining WS-I Tools
Limitations
Additional Information
2
Working with Message Attachments
Working with MIME Attachments
How OracleAS Web Services Supports MIME Attachments
How to Assemble a Web Service Using swaRef MIME Attachments
Steps for Assembling a Web Service Top Down
Steps for Assembling a Web Service Bottom Up
How to Assemble a Web Service Using SWA MIME Attachments
Understanding SWA MIME Attachments
Steps for Assembling a Web Service with SWA Attachments Top Down
Sample WSDL with SWA MIME References
Sample Generated Interface with Parameters that Can Pass SWA Attachments
How to Add MIME Attachments to SOAP Fault Messages
Understanding SOAP Fault Messages with Attachments
Steps for Assembling SOAP Faults with Attachments into a Web Service Top Down
How to Specify SOAP Faults with Attachments in the WSDL
How to Implement a Method that Throws Faults with Attachments
How to Retrieve SOAP Faults with Attachments on the Client
Working with Streaming Attachments
Understanding Streaming Attachments
Limitations on Streaming Attachments
Understanding the Streaming Attachments API
Interface for Attachment Objects
Factory Class for Attachment Objects
Interface for Attachments
Interface for Incoming Attachments
Interface for Outgoing Attachments
WSDL Extensions for Streaming Attachments
How to Assemble Streaming Attachments into a Web Service
Steps for Assembling a Web Service that Supports Streaming Attachments Bottom Up
Steps for Assembling a Web Service that Supports Streaming Attachments Top Down
Working with MTOM Encoded Attachments
Understanding MTOM Encoded Attachments
How to Assemble Support for MTOM Encoded Attachments into a Web Service
Assembling Support for MTOM Encoded Attachments into a Web Service Bottom Up
Assembling Support for MTOM Encoded Attachments into a Web Service Top Down
Assembling Support for MTOM Encoded Attachments into a Web Service Client
Programatically Overriding MTOM Support for a Web Service Client
How to Work with MTOM Encoded Attachments Programatically
Understanding the OraSAAJ API for MTOM Encoded Attachments
How to Use the OraSAAJ API for Attachments with Binary Content in Client Code
Working with DIME-Encoded Attachments
Understanding DIME-Encoded Attachments
How to Implement Interoperable DIME-Encoded Messages
Limitations on OracleAS Web Services Support for Interoperable Dime Encoded Messages
How to Implement Oracle Proprietary DIME-Encoded Messages
Working with Attachments in WSIF
Limitations
Additional Information
3
Managing Web Services
Understanding Web Service Management
Web Service Management Environment
Web Service Management Life Cycle
How to Pass Management Information to the Server
Working with Management Information in a J2SE Client
Understanding Data Flow for Management Information in a J2SE Client
How to Pass Management Information to a J2SE Client
Working with Management Information in a J2EE Client
Understanding Data Flow for Management Information in a J2EE Client
How to Pass Management Information to a J2EE Client
How to Pass a Management Configuration to a Client Programmatically
How to Pass a Management Configuration to a DII Web Service Client Programmatically
How to Pass a Management Configuration to a Dynamic Proxy Web Service Client Programmatically
How to Pass a Management Configuration to a Static Proxy Web Service Client Programmatically
How to Pass a Management Configuration to a J2EE Web Service Client Programmatically
How to Pass a Static Management Configuration to a Client
How to Pass a Static Management Configuration to a Servlet or JSP Web Service Client
How to Pass a Static Management Configuration to an EJB Web Service Client
How to Pass a Static Management Configuration to an Application Client Web Service Client
Working with Capability Assertions
Understanding Capability Assertions
How to Assemble Capability Assertions into a Web Service
How to Add Capability Assertions with WebServicesAssembler
How to Add Capability Assertions with Oracle JDeveloper
Application Server Control Support for Web Service Management
Additional Information
4
Ensuring Web Services Security
Additional Information
5
Ensuring Web Service Reliability
Prerequisites for the Database Store
Provide a Running Database
Install SQL Tables for the Client and Server
How to Change the Widths of Database Columns
How to Add Reliable Messaging to a Web Service
Steps to Assemble Reliability into a Web Service Bottom Up
Steps to Assemble Reliability into a Web Service Top Down
How to Assemble Capability Assertions into a Web Service Top Down
Steps to Assemble Reliability into a J2SE Web Service Client Proxy
Steps to Assemble Reliability into a J2EE Web Service Client
How to Configure Reliability on the Server
Server-Side Reliability Configuration Elements
Port-Level Reliability Elements on the Server
Operation Level Reliability Elements on the Server
Capability Assertions for Reliability
How to Add Capability Assertions for Reliability to a Web Service
How to Configure Reliability on the Client
Client-Side Reliability Configuration Elements
Port Level Reliability Elements on the Client
Operation Level Reliability Elements on the Client
How to Configure Client-Side Database Support
How to Configure the Database to Store Messages from a J2SE Client
How to Configure the Database to Store Messages from a J2EE Client
How to Configure a Listener for a J2EE Client
How to Configure Client-Side Reliability Programmatically
Adding Reliable Messaging Support to Static Stub and DII Client Code
Implementing Message Ordering in Client Code
Tool Support for Web Services Reliability
Application Server Control Support for Web Service Reliability
Oracle JDeveloper Support for Web Service Reliability
Limitations
Additional Information
6
Auditing and Tracing Messages
Understanding Auditing
How Auditing Affects Performance
How the Runtime Handles Auditing
How the Runtime Audits Request Messages
How the Runtime Audits Response Messages
How the Runtime Audits Fault Messages
How to Configure Auditing on the Server
Server-Side Auditing Configuration Elements
How to Configure Auditing in a J2EE Client
Understanding Tracing
How Tracing Affects Performance
How the Runtime Handles Tracing
How the Runtime Logs Request Messages
How the Runtime Logs Response Messages
How the Runtime Logs Fault Messages
How to Configure Tracing on the Server
Server-Side Tracing Configuration Elements
Port-Level Tracing Elements on the Server
Operation Level Tracing Elements on the Server
Tool Support for Web Services Auditing and Tracing
How to Use WebServicesAssembler to Add an Auditing and Tracing Configuration
Steps to Assemble Auditing and Tracing into a Web Service Bottom Up
Steps to Assemble Auditing and Tracing into a Web Service Top Down
Steps to Assemble Auditing into a J2SE Web Service Client Proxy
Steps to Assemble Auditing into a J2EE Web Service Client
How Application Server Control Supports Auditing and Tracing
How Oracle JDeveloper Supports Auditing and Tracing
Understanding Diagnostic Loggers
Controlling the Output of Web Services Loggers
Log Handlers
Loggers
Adding Configuration for Diagnostic Loggers
Setting Levels of Diagnostic Logging in Application Server Control
Limitations
Additional Information
7
Implementing Custom Serialization of Java Value Types
Understanding the Custom Serialization Framework API
How to Use Custom Serialization in Web Service Development
How to Implement a Custom Serializer
How to Define a Custom Java Type Value Class
How to Define a Custom Serializer Implementation for a Java Type Value Class
How to Define a Service Endpoint Interface that Uses a Java Type Value Class
How to Create an oracle-webservices Type Mapping Configuration
How to Use Custom Types in Client Proxy Code
How to Use Custom Serialization in Top Down Web Service Development
Prerequisites
Steps for Using Custom Serialization in Top Down Web Service Development
How to Use Custom Serialization in Bottom Up Web Service Development
Prerequisites
Steps to Use Custom Serialization in Bottom Up Web Service Development
How to Use Custom Serialization in Schema-Driven Web Service Development
Prerequisites
Steps for Schema-Driven Web Services Assembly with Custom Serialization
Sample Schema Document
Sample Service Endpoint Interface and Implementation
Sample Java Custom Type Implementation
How to Implement a Serializer with Custom Marshalling Logic
How to Edit the Type Mapping Configuration XML File for Java Value Type Classes
How to Assemble a Client for Custom Type Mapping and a Custom Serializer
Steps to Use Custom Serializers in Client Code
How to Edit the Custom Type Mapping File for the Client
How to Assemble the Web Service Client Side Proxy
How to Write a Web Service Client with Custom Datatypes
Limitations
Additional Information
8
Using JMS as a Web Service Transport
Understanding JMS as a Transport Mechanism
Understanding Data Flow for JMS Transport
WSDL Extensions for JMS Transport
JMS Address Element
JMS Property Value Element
How to Set Up JMS Queues
How to Assemble a Web Service Bottom Up that Uses JMS Transport
Steps to Assemble a Web Service Bottom Up that Uses JMS Transport
Sample Generated WSDL for JMS Transport
How to Configure JMS Transport by using Deployment Descriptors
How to Assemble a Web Service Top Down that Uses JMS Transport
How to Assemble a Proxy that Uses JMS as a Transport
Writing Client Code to Support JMS Transport
How to Write Client Stub Code for JMS Transport
How to Set the Send Queue Location and Connection Factory Programmatically
How to Write DII Code for JMS Transport
Limitations
Additional Information
9
Using Web Services Invocation Framework
Understanding WSIF
Understanding WSIF Architecture
WSIF and Java Classes
Providing WSIF Functionality for Java Classes
How to Configure WSIF Endpoints for Java Ports
How to Configure a Single Java Port with wsifJavaBinding
How to Configure a Single Java Port with wsifJavaPort
How to Configure Multiple Java Ports with wsifJavaPort
WSIF Java Extensions to the WSDL
WSIF and EJBs
Providing WSIF Functionality for EJBs
Providing WSIF Functionality for Version 3.0 EJBs
How to Configure WSIF Endpoints for EJB Ports
How to Configure a Single EJB Port with wsifEjbBinding
How to Configure a Single EJB Port with wsifEjbPort
How to Configure Multiple EJB Ports with wsifEjbPort
WSIF EJB Extensions to the WSDL
WSIF and Database Resources
How to Configure a WSIF Endpoints Database Resource Ports
How to Configure a Single Database Resource Port with wsifDbBinding
How to Configure a Single Database Resource Port with wsifDbPort
How to Configure Multiple Database Resource Ports with wsifDbPort
WSIF SQL Extensions to the WSDL
Writing a WSIF Client
Steps to Write a WSIF Client
Steps to Write a WSIF Client Using a Dynamic Proxy
How to Use genInterface to Generate a Service Endpoint Interface
How to Access the Database from a WSIF Client
How to Add a Management Configuration to a WSIF Client
How DII Clients of WSIF Services Can Get Message Headers
How to Add Message Attachments in WSIF
Steps to Add Attachments in the WSIF Client with the WSIF API
How to Add Attachments in a WSIF Client with the OracleCall API
How to Retrieve Streamed Response Attachments in a WSIF Client
How to Add DIME-Packaged Attachments in a WSIF Client
Tool Support for WSIF
Limitations
Additional Information
10
Using Web Service Providers
What is a Provider?
Understanding the Provider API
Provider Interface
init Method
processMessage Method
destroy Method
ProviderConfig Class
addService and removeService Methods
PROPAGATE_DYNAMIC_ENDPOINTS Property
MessageContext Class
HTTPConstants Class
ProviderServlet Class
Extending ProviderServlet
How to Make a Web Service Provider-Aware
How to Edit the oracle-webservices.xml Deployment Descriptor
Provider Elements in oracle-webservices.xml
How to Edit the web.xml Deployment Descriptor
Provider Elements in web.xml
Registering a Provider-Managed Endpoint
How to Register a Static Provider-Managed Endpoint
How to Register a Dynamic Provider-Managed Endpoint
How to Make Dynamic Endpoints Accessible in a Clustered Environment
How to Package Provider Web Application Provider Classes
Deploying Provider Web Applications
Testing Provider Web Application Deployment
Managing Provider Endpoints
Assembling Clients for Provider Web Service Applications
Troubleshooting
Additional Information
A
Understanding the Web Services Management Schema
Levels of Web Service Management
Global Level
Port Level
Operation Level
wsmgmt.xml Listing
B
OracleAS Web Services Client Schema
Hierarchy of XML Elements in oracle-webservices-client
Elements and Attributes of oracle-webservices-client
<oracle-webservice-clients>
<port-info>
<service-qname>
<type-mappings>
<webservice-client>
C
OracleAS Web Services Reliability Schema
Hierarchy of a Reliability Configuration
Element and Attribute Descriptions for the Reliability Schema
<ack-interval>
<ack-limit>
<async-poll-reply-to-url>
<cleanup-interval>
<duplicate-elimination>
<duplication-elimination-required>
<expiry>
<group-expiry-time>
<group-max-idle-time>
<guaranteed-delivery>
<guaranteed-delivery-required>
<max-age>
<order-interval>
<poll-interval>
<reliability>
<reply-pattern>
<reply-to-url>
<repository>
<retry-interval>
<retry-limit>
<standalone-listener-port>
Reliability Configuration Listing
D
OracleAS Web Services Auditing Schema
Hierarchy of an Auditing Configuration
Elements and Attributes for the Auditing Schema
<auditing>
Auditing Configuration Listing
E
OracleAS Web Services Tracing Schema
Hierarchy of a Tracing Configuration
Elements and Attributes for the Tracing Schema
<attribute>
<attributes>
<fault>
<logging>
<namespace>
<namespaces>
<request>
<response>
Tracing Configuration Listing
F
JAX-RPC Mapping File Descriptor
How to Produce a JAX-RPC Mapping File
Understanding Naming Conventions for the JAX-RPC Mapping File
How to Customize the WSDL or Service Endpoint Interface Contents
Scenarios for Editing the JAX-RPC mapping File
How to Change Namespace-to-Java Mappings
How to Change the Names of Java or WSDL Artifacts
How to Change a Java Class Associated with an XML Type
How to Generate Code into a Single Package from a WSDL with Multiple Namespaces
How to Wrap or Unwrap Mapping for Document-Literal Operations
How to Map Between SOAP Headers and Java Method Parameters
G
Web Service MBeans
Web Services MBean Descriptions
Understanding MBean Components
WebServicePort
WebServiceOperation
WSMServiceConfig
WSMOperationConfig
WSMHandlerGlobalConfig
WSMHandlerServiceConfig
WSMHandlerOperationConfig
Initializing MBeans
H
Mapping Java Types to XML and WSDL Types
How OracleAS Web Services Maps Java Types to XML Types
How to Use Java Null Values in Bottom Up Mapping
How OracleAS Web Services Maps Java Primitive Types to XML Types
How OracleAS Web Services Supports Java Value Types
How to Represent a Java Value Type as a Schema Type
How OracleAS Web Services Supports Array Mapping
All Message Formats
Document-Literal and RPC-Literal Formats
RPC-Encoded Format
How OracleAS Web Services Maps Java Collection Classes to XML Types
Limitations on Using Collection and Map Data Types
Definitions for Oracle Proprietary Collection Data Types
Mapping J2SE 5.0 Collection and Map Data Types in Version 3.0 EJBs
How OracleAS Web Services Supports Java Beans Components
I
Troubleshooting
OracleAS Web Services Messages
Assembling Web Services from a WSDL
Schema Features Limitations
Schema Features that are Mapped to a SOAPElement
RPC Encoded Does Not Support Complex Types With Attributes
Assembling Web Services from Java Classes
Assembling Web Services From EJBs
Assembling Web Services with JMS Destinations
Developing Web Services From Database Resources
Assembling Web Services with Annotations
Assembling REST Web Services
Testing Web Service Deployment
Assembling a J2EE Web Service Client
Understanding JAX-RPC Handlers
Processing SOAP Headers
Packaging and Deploying Web Services
Ensuring Interoperable Web Services
Working with Message Attachments
Managing Web Services
Ensuring Web Service Reliability
Auditing and Logging Messages
Custom Serialization of Java Value Types
Using JMS as a Web Service Transport
Using the Web Service Invocation Framework
Using Web Service Providers
J
Third Party Licenses
Apache
The Apache Software License
Apache SOAP
Apache SOAP License
JSR 110
Jaxen
The Jaxen License
SAXPath
The SAXPath License
W3C DOM
The W3C License
Index