Skip Headers
Oracle® Application Server Web Services Developer's Guide
10
g
Release 2 (10.1.2)
Part No. B14027-01
Home
Solution Area
Index
Next
Contents
List of Examples
List of Figures
List of Tables
Title and Copyright Information
Send Us Your Comments
Preface
Intended Audience
Documentation Accessibility
Organization
Related Documentation
Conventions
1
Web Services Overview
1.1
What Are Web Services?
1.1.1
Understanding Web Services
1.1.2
Benefits of Web Services
1.1.3
About the Web Services e-Business Transformation
1.1.3.1
About Business Transformation with Web Services
1.1.3.2
About Technology Transformation with Web Services
1.2
Overview of Web Services Standards
1.2.1
SOAP Standard
1.2.2
Web Services Description Language (WSDL)
1.2.3
Universal Description, Discovery, and Integration (UDDI)
1.3
SOAP Message Exchange and SOAP Message Encoding
1.3.1
SOAP Message Components
1.3.2
Working With RPC Style SOAP Messages
1.3.3
Working With Document Style SOAP Messages
2
Oracle Application Server Web Services
2.1
Oracle Application Server OC4J (J2EE) and Oracle SOAP Based Web Services
2.2
Oracle Application Server Web Services Standards
2.3
Oracle Application Server Web Services Features
2.3.1
Developing End-to-End Web Services
2.3.2
Deploying and Managing Web Services
2.3.3
Using Oracle JDeveloper with Web Services
2.3.4
Securing Web Services
2.3.5
Aggregating Web Services
2.4
Oracle Application Server Web Services Architecture
2.4.1
About Servlet Entry Points for Web Services
2.4.2
What Are the Packaging and Deployment Options for Web Services
2.4.3
About Server Skeleton Code Generation for Web Services
2.5
Understanding WSDL and Client Proxy Stubs for Web Services
2.5.1
Overview of a WSDL Based Web Service Client
2.5.2
Overview of a Client-Side Proxy Stubs Based Web Service Client
2.6
Web Services Home Page
2.7
About Universal Description, Discovery, and Integration Registry
2.7.1
Oracle Enterprise Manager 10
g
Features to Register Web Services
3
Developing and Deploying Java Class Web Services
3.1
Using Oracle Application Server Web Services With Java Classes
3.2
Writing Java Class Based Web Services
3.2.1
Writing Stateless and Stateful Java Web Services
3.2.2
Building a Sample Java Class Implementation
3.2.2.1
Defining a Java Class Containing Methods for the Web Service
3.2.2.2
Defining an Interface for Explicit Method Exposure
3.2.2.3
Writing a WSDL File (Optional)
3.2.3
Using Supported Data Types for Java Web Services
3.3
Preparing and Deploying Java Class Based Web Services
3.3.1
Creating a Configuration File to Assemble Java Class Web Services
3.3.1.1
Adding Web Service Top Level Tags
3.3.1.2
Adding Java Stateless Service Tags
3.3.1.3
Adding Java Stateful Service Tags
3.3.1.4
Adding WSDL and Client-Side Proxy Generation Tags
3.3.2
Running WebServicesAssembler To Prepare Java Class Web Services
3.3.3
Deploying Java Class Based Web Services
3.4
Serializing and Encoding Parameters and Results for Web Services
4
Developing and Deploying EJB Web Services
4.1
Using Oracle Application Server Web Services With Stateless Session EJBs
4.2
Writing Stateless Session EJB Web Services
4.2.1
Defining a Stateless Session Remote Interface
4.2.2
Defining a Stateless Session Home Interface
4.2.3
Defining a Stateless Session EJB Bean
4.2.4
Returning Results From EJB Web Services
4.2.5
Error Handling for EJB Web Services
4.2.6
Serializing and Encoding Parameters and Results for EJB Web Services
4.2.7
Using Supported Data Types for Stateless Session EJB Web Services
4.2.8
Writing a WSDL File for EJB Web Services (Optional)
4.3
Preparing and Deploying Stateless Session EJB Based Web Services
4.3.1
Creating a Configuration File to Assemble Stateless Session EJB Web Services
4.3.1.1
Adding Web Service Top Level Tags
4.3.1.2
Adding Stateless Session EJB Service Tags
4.3.1.3
Adding WSDL and Client-Side Proxy Generation Tags
4.3.2
Running WebServicesAssembler To Prepare Stateless Session EJB Web Services
4.3.3
Deploying Web Services Implemented as EJBs
5
Developing and Deploying Stored Procedure Web Services
5.1
Using Oracle Application Server Web Services with Stored Procedures
5.2
Writing Stored Procedure Web Services
5.3
Preparing Stored Procedure Web Services
5.3.1
Creating a Configuration File to Assemble Stored Procedure Web Services
5.3.1.1
Adding Web Service Top Level Tags
5.3.1.2
Adding Stateless Stored Procedure Java Service Tags
5.3.1.3
Adding WSDL and Client-Side Proxy Generation Tags
5.3.2
Running WebServicesAssembler With Stored Procedure Web Services
5.3.3
Setting Up Datasources in Oracle Application Server Web Services (OC4J)
5.4
Deploying Stored Procedure Web Services
5.5
Limitations for Stored Procedures Running as Web Services
5.5.1
Supported Stored Procedure Features for Web Services
5.5.2
Unsupported Stored Procedure Features for Web Services
5.5.3
Database Server Release Limitation for Boolean Use in Oracle PL/SQL Web Services
5.5.4
TIMESTAMP and DATE Granularity Limitation
5.5.5
LOB (CLOB/BLOB) Emulated Data Source Limitation
6
Developing and Deploying Document Style Web Services
6.1
Using Document Style Web Services
6.2
Writing Document Style Web Services
6.2.1
Supported Method Signatures for Document Style Web Services
6.2.1.1
Passing Null Values for Document Style Web Services
6.2.1.2
Arrays of Elements
6.2.2
Writing Stateless and Stateful Document Style Web Services
6.2.3
Writing Classes and Interfaces for Document Style Web Services
6.2.3.1
Defining Methods in a Document Style Web Service
6.2.3.2
Defining an Interface for Explicit Method Exposure
6.2.3.3
Handling Messages for Document Style Web Services
6.3
Preparing Document Style Web Services
6.3.1
Creating a Configuration File to Assemble Document Style Web Services
6.3.1.1
Adding Web Service Top Level Tags
6.3.1.2
Adding Java Service Tags with Document Message Style Specified
6.3.1.3
Adding WSDL and Client-Side Proxy Generation Tags
6.3.2
Running WebServicesAssembler With Document Style Web Services
6.4
Deploying Document Style Web Services
7
Developing and Deploying JMS Web Services
7.1
JMS Web Services Overview
7.1.1
Using JMS Web Services
7.1.2
JMS Web Services Backend Message Processing
7.1.2.1
Using an MDB for Message Processing
7.1.2.2
Using a JMS Client for Message Processing
7.2
Writing JMS Web Services and Handling Messages
7.2.1
Using an MDB for Backend Message Processing
7.2.1.1
Developing the MDB that Processes Incoming Messages
7.2.1.2
Developing the MDB that Generates Outgoing Messages
7.2.1.3
Compiling and Preparing the MDB EJB.jar File
7.2.1.4
Assembling the JMS Web Service With the MDB
7.2.1.5
Defining the Server-Side Resource References
7.2.2
Using a JMS Standalone Program for Backend Message Processing
7.2.3
Message Processing and Reply Messages
7.3
Preparing and Configuring JMS Web Services
7.3.1
Creating a Configuration File to Assemble JMS Web Services
7.3.1.1
Adding Web Service Top Level Tags
7.3.1.2
Adding JMS Doc Service Tags
7.3.1.3
Adding WSDL and Client-Side Proxy Generation Tags
7.3.2
Running WebServicesAssembler With JMS Web Services
7.4
Deploying JMS Web Services
7.5
Limitations for JMS Web Services
8
Building Clients that Use Web Services
8.1
Locating Web Services
8.2
Getting WSDL Files and Client-Side Proxy Jars for Web Services
8.2.1
Using the Web Service Home Page to Save WSDL and Client Side Proxies
8.2.1.1
Limitations for Web Service Test Pages
8.2.2
Getting Web Service WSDL and Client-Side Proxies Directly
8.2.2.1
Getting WSDL Service Descriptions
8.2.2.2
Getting Client-Side Proxy Jar and Client-Side Proxy Source Jar
8.2.2.3
Getting Client-Side Proxy Jar and Client-Side Proxy Source by Package
8.2.3
Generating Client-Side Proxies With WebServicesAssembler
8.3
Working with Client-Side Proxy Jar to Use Web Services
8.3.1
Setting the Web Services Proxy Client CLASSPATH
8.3.2
Using Java Beans as Parameters for Web Services
8.3.3
Using Web Services Security Features
8.4
Working with WSDL Files and Oracle JDeveloper to Use Web Services
9
Web Services Tools
9.1
Running the Web Services Assembly Tool
9.2
Web Services Assembly Tool Configuration File Sample
9.2.1
Web Services Assembly Tool Configuration File Sample Output
9.3
Generating WSDL Files and Client Side Proxies
9.3.1
Generating and Assembling WSDL Files
9.3.1.1
Manually Producing a WSDL File
9.3.2
Generating Client-Side Proxies with WSDL
9.4
Web Services Assembly Tool Configuration File Specification
9.5
Web Services Assembly Tool Limitations
10
Discovering and Publishing Web Services
10.1
Understanding a UDDI Registry
10.1.1
UDDI Registry Data Structure
10.2
Introducing OracleAS UDDI Registry
10.2.1
Support for Standard Classification and Identifier Systems
10.2.2
UUID Generation
10.3
Getting Started with OracleAS UDDI Registry
10.3.1
Configuring OracleAS UDDI Registry
10.3.2
Modifying Properties at Installation or First-Use
10.3.3
Considerations in a Production Environment
10.4
Web Services Discovery
10.4.1
Using the OracleAS UDDI Registry Searching and Browsing Tool
10.4.2
Using Other Tools to Discover Web Services
10.4.3
Using the OracleAS UDDI Registry Inquiry API
10.5
Web Services Publishing
10.5.1
Using Oracle Enterprise Manager for Web Services Publishing
10.5.1.1
Publishing Web Services Using the Deploy Application Wizard
10.5.1.2
Updating Published Web Services in OracleAS UDDI Registry
10.5.2
Using the OracleAS UDDI Registry Publishing Tool
10.5.3
Using the OracleAS UDDI Registry Publishing API
10.6
OracleAS UDDI Registry Administration
10.6.1
Using the Command-Line Tool uddiadmin.jar
10.6.2
Configuring the Server
10.6.3
Managing Users
10.6.4
Enforcing Quotas
10.6.4.1
Updating the Limits of a Quota Group
10.6.4.2
Adding a New Quota Group (Advanced Operation)
10.6.4.3
Deleting a Quota Group (Advanced Operation)
10.6.4.4
Viewing the Lists of Quota Groups and Their Limits
10.6.4.5
Associating a Publisher with a Quota Group
10.6.5
Managing Administrative Entities
10.6.6
Importing Entities
10.6.7
Setting Operational Information
10.6.8
UDDI Replication
10.6.8.1
Enabling UDDI Replication
10.6.8.2
Transferring Custody
10.6.8.3
Setting Properties for the UDDI Replication Scheduler
10.6.8.4
Handling Replication Exceptions
10.6.8.5
Advanced Configuration and Tuning for UDDI Replication
10.6.9
Registry-Based Category Validation
10.6.9.1
Adding a New Category for Registry-Based Validation
10.6.9.2
Removing a Category from Registry-Based Validation
10.6.10
External Validation
10.6.10.1
Enabling External Category Validation
10.6.10.2
Adding an Externally Validated Category to the Registry
10.6.10.3
Removing an Externally Validated Category from the Registry
10.6.11
Performance Monitoring and Tuning
10.6.12
Data Backup and Restore Operations
10.6.13
Database Configuration
10.6.13.1
Database Character Set Should Be UTF-8
10.6.13.2
Database Character Set and Built-in ISO-3166 Classification
10.6.13.3
Functional Index Must Be Enabled
10.6.13.4
Accuracy of Modified Timestamps of UDDI Entities
10.6.14
Transport Security
10.7
UDDI Open Database Support
10.7.1
Microsoft SQL Server
10.7.1.1
Script Source Directory
10.7.1.2
Create the Database and User
10.7.1.3
Install the Schema
10.7.1.4
Import BUILTIN_CHECKED_CATEGORY Table Entries
10.7.1.5
Configure OC4J to Use SQL Server
10.7.2
IBM DB2
10.7.2.1
Script Source Directory
10.7.2.2
Create the Database and User
10.7.2.3
Install the Schema
10.7.2.4
Import BUILTIN_CHECKED_CATEGORY Table Entries
10.7.2.5
Configure OC4J to Use DB2
10.7.3
Other Oracle Database (Non-Infrastructure)
10.7.3.1
Script Source Directory
10.7.3.2
Create the Database and User
10.7.3.3
Populate the Validated Taxonomy Codes
10.7.3.4
Configure OC4J to Use the Non-OracleAS Infrastructure Database
10.8
OracleAS UDDI Registry Server Error Messages
Command-Line Options for the uddiadmin.jar Tool
changeOwner
correctChangeRecord
deleteEntity
deleteRoleQuotaLimits
destroyTModel
doPing
downloadReplicationConfiguration
getChangeRecord
getHighWaterMarks
getProperties
getRoleQuotaLimits
getUserDetail
getUsers
import
setOperationalInfo
setProperty
setRoleQuotaLimits
setWalletPassword
transferCustody
uploadReplicationConfiguration
Server Configuration Properties
addressTModelKeyValidation
assertionKeyedRefValidation
businessEntityURLPrefix
categoryValidation
categoryValidationTModelKeys
changeRecordWantsAck
defaultLang
externalValidation
externalValidationTimeout
externalValidationTModelList
hostingRedirectorValidation
identifierValidation
jdbcDriverType
maxChangeRecordsSentEachTime
maxConnections
minConnections
operatorCategory
operatorName
pushEnabled
pushTaskExecutionPeriod
quotaLimitChecking
schemaValidationUponIncomingRequests
soapRequestAuthMethod
soapRequestTimeout
startMaintainingUpdateJournal
status
stmtCacheType
stmtCacheSize
taskExecutionPeriod
timer_pool_size
tModelInstanceInfoKeyValidation
walletLocation
11
Consuming Web Services in J2EE Applications
11.1
Consuming SOAP-Based Web Services Using WSDL
11.1.1
Advanced Configuration
11.1.2
Known Limitations of the
wsdl2ejb
Utility
11.1.3
Running the Demonstration
11.1.3.1
RPC and Document Style with Simple Types Example
11.1.3.2
Round 2 Interop Services: Base Test Suite Example
11.2
Dynamic Invocation of Web Services
11.2.1
Dynamic Invocation API
11.2.2
WebServiceProxy Client
11.2.3
Known Limitations
12
Advanced Topics for Web Services
12.1
Setting the Web Services Debugging Property ws.debug
12.2
Untyped Request Handling Options
12.3
SOAP Header Support
12.3.1
Client Side SOAP Request Header Support
12.3.1.1
Setting SOAP Headers in a Client-Side Proxy
12.3.2
Server Side SOAP Request Header Support
12.3.3
Limitations for SOAP Header Support
A
Using Oracle Application Server SOAP
A.1
Understanding Oracle Application Server SOAP
A.2
Apache SOAP Documentation
A.3
Configuring the SOAP Request Handler Servlet
A.4
Using OracleAS SOAP Management Utilities and Scripts
A.4.1
Managing Providers
A.4.2
Using the Service Manager to Deploy and Undeploy Java Services
A.4.3
Generating Client Proxies from WSDL Documents
A.4.4
Generating WSDL Documents from Java Service Implementations
A.5
Deploying OracleAS SOAP Services
A.5.1
Creating Deployment Descriptors
A.5.2
Installing a SOAP Web Service in OC4J
A.5.3
Disabling an Installed SOAP Web Service
A.5.4
Installing a SOAP Web Service in an OC4J Cluster
A.6
Using OracleAS SOAP Handlers
A.6.1
Request Handlers
A.6.2
Response Handlers
A.6.3
Error Handlers
A.6.4
Configuring Handlers
A.7
Using OracleAS SOAP Audit Logging
A.7.1
Audit Logging Information
A.7.1.1
Audit Logging Output
A.7.2
Auditable Events
A.7.2.1
Audit Logging Filters
A.7.3
Configuring the Audit Logger
A.8
Using OracleAS SOAP Pluggable Configuration Managers
A.9
Working With OracleAS SOAP Transport Security
A.9.1
Apache Listener and Servlet Engine Configuration for SSL
A.9.2
Using JSSE with Oracle Application Server SOAP Client
A.10
Using OracleAS SOAP Sample Services
A.10.1
The Xmethods Sample
A.10.2
The AddressBook Sample
A.10.3
The StockQuote Sample
A.10.4
The Company Sample
A.10.5
The Provider Sample
A.10.6
The AddressBook2 Sample
A.10.7
The Messaging Sample
A.10.8
The Mime Sample
A.11
Using the OracleAS SOAP EJB Provider
A.11.1
Stateless Session EJB Provider
A.11.2
Stateful Session EJB Provider in Apache SOAP
A.11.3
Stateful Session EJB Provider in OracleAS SOAP
A.11.4
Entity EJB Provider in OracleAS SOAP
A.11.5
Deployment and Use of the OracleAS SOAP EJB Provider
A.11.6
Current Known EJB Provider Limitations
A.12
Using PL/SQL Stored Procedures With the SP Provider
A.12.1
SP Provider Supported Functionality
A.12.2
SP Provider Unsupported Functionality
A.12.3
SP Provider Supported Simple PL/SQL Types
A.12.4
Using Object Types
A.12.5
Deploying a Stored Procedure Provider
A.12.6
Translating PL/SQL Stored Procedures into Java
A.12.7
Deploying a Stored Procedure Service
A.12.8
Invoking a SOAP Service that is a Stored Procedure
A.13
SOAP Troubleshooting and Limitations
A.13.1
Tunneling Using the TcpTunnelGui Command
A.13.2
Setting Configuration Options for Debugging
A.13.3
Using DMS to Display Runtime Information
A.13.4
SOAP Limitations for Java Type Precedence with Overloaded Methods
A.14
OracleAS SOAP Differences From Apache SOAP
A.14.1
Service Installation Differences
A.14.2
Optional Provider Enhancements
A.14.3
Oracle Transport libraries
A.14.4
Modifications to Apache EJB Provider
A.14.5
Stored Procedure Provider
A.14.6
Utility Enhancements
A.14.7
Modifications to Sample Code
A.14.8
Handling the mustUnderstand Attribute in the SOAP Header
A.14.8.1
Setting the mustUnderstand Check
A.14.8.2
How the mustUnderstand Check Works
A.14.8.3
Differences Between Apache SOAP and Oracle SOAP for mustUnderstand
A.15
Apache Software License, Version 1.1
B
Web Services Security
B.1
About Web Services Security
B.2
Configuring Web Services Security
B.3
About Oracle Application Server UDDI Registry Security
B.3.1
Protecting Oracle Application Server UDDI Registry Resources
B.3.1.1
Oracle Application Server UDDI Registry
B.3.1.2
Oracle Application Server Content Subscription Manager Application
B.3.2
Managing and Enforcing Protected UDDI Resources
B.3.2.1
Oracle Application Server UDDI Registry
B.3.2.2
Oracle Application Server Content Subscription Manager Application
B.3.3
Using Oracle Application Server Security Services
B.4
Configuring UDDI Security
B.4.1
Configuring the Oracle Application Server UDDI Registry
B.4.2
Configuring the UDDI Content Subscription Manager
B.4.3
Configuring the UDDI Client
C
Troubleshooting OracleAS Web Services
C.1
Problems and Solutions
C.1.1
Receiving "Unsupported Response Content Type" Error
C.1.2
Cannot Publish Doc/Literal in JDeveloper
C.1.3
Cannot Register Web Service
C.1.4
UDDI Registry Screens Missing
C.1.5
UDDI Management Screens Are Not Enabled
C.2
Diagnosing OracleAS Web Services Problems
C.2.1
Generating Web Services Diagnostic Messages
C.3
Need More Help?
Glossary
Index