Introduction to WebLogic Web Services
Overview of Web Services
Why Use Web Services?
Web Service Standards
BEA Implementation of Web Service Specifications
SOAP
WSDL 1.1
JAX-RPC 1.0
Web Services Security (WS-Security)
UDDI 2.0
Additional Specifications Supported by WebLogic Web Services
WebLogic Web Service Features
Unsupported Features
Examples of Creating and Invoking a Web Service
Creating WebLogic Web Services: Main Steps
Roadmap to Common Tasks for Creating Web Services
Editing XML Files
Architectural Overview
Overview of WebLogic Web Services Architecture
Back-end Component Operation
Back-end Component and SOAP Message Handler Chain Operation
SOAP Message Handler Chain Operation
Creating a WebLogic Web Service: A Simple Example
Overview of the Web Service Example
Building and Running the Trader WebLogic Web Service Example
Anatomy of the Example
The EJB Java Interfaces and Implementation Class
Remote Interface (Trader.java)
Session Bean Implementation Class (TraderBean.java)
Home Interface (TraderHome.java)
The Non-Built-In Data Type TraderResult
The EJB Deployment Descriptors
ejb-jar.xml
weblogic-ejb-jar.xml
The servicegen Ant Task That Assembles the Web Service
The Client Application to Invoke The Web Service
Designing WebLogic Web Services
Choosing the Back-end Components of Your Web Service
EJB Back-end Component
Java Class Back-end Component
Choosing Between Synchronous or Asynchronous Operations
Choosing RPC-Oriented or Document-Oriented Web Services
Using Built-In and Non-Built-In Data Types
Using SOAP Message Handlers to Intercept the SOAP Message
Mimicking a Conversational (Stateful) WebLogic Web Service
Implementing WebLogic Web Services
Overview of Implementing a WebLogic Web Service
Examples of Implementing WebLogic Web Services
Implementing a WebLogic Web Service: Main Steps
Writing the Java Code for the Components
Implementing a Web Service By Writing a Stateless Session EJB
Implementing a Web Service By Writing a Java Class
Implementing Non-Built-In Data Types
Implementing a Document-Oriented Web Service
Generating a Partial Implementation From a WSDL File
Running the wsdl2Service Ant Task
Sample build.xml Files for the wsdl2Service Ant Task
Using SOAP Attachments
java.lang.String
javax.activation.DataHandler
Implementing Multiple Return Values
Using Out and In-Out Parameters
Using Holder Classes to Implement Multiple Return Values
Throwing SOAP Fault Exceptions
Supported Built-In Data Types
XML Schema-to-Java Mapping for Built-In Data Types
Java-to-XML Mapping for Built-In Data Types
Assembling WebLogic Web Services Using Ant Tasks
Overview of Assembling WebLogic Web Services Using Ant Tasks
Examples of Assembling WebLogic Web Services
Assembling WebLogic Web Services Using the servicegen Ant Task
What the servicegen Ant Task Does
Assembling WebLogic Web Services Automatically: Main Steps
Creating the Build File That Specifies the servicegen Ant Task
Assembling WebLogic Web Services Using Individual Ant Tasks
Assembling a Web Service Starting with Java
Assembling a Web Service Starting with an XML Schema
Running the source2wsdd Ant Task
Running the autotype Ant Task
Running the clientgen Ant Task
Running the wspackage Ant task
The Web Service EAR File Package
Non-Built-In Data Types Supported by servicegen and autotype Ant Tasks
Supported XML Non-Built-In Data Types
Supported Java Non-Built-In Data Types
Data Type Non-Compliance with JAX-RPC
Non-Roundtripping of Generated Data Type Components
Deploying and Testing WebLogic Web Services
WebLogic Web Services Home Page and WSDL URLs
Denying Access to the WSDL and Home Page of a WebLogic Web Service
Invoking Web Services from Client Applications and WebLogic Server
Overview of Invoking Web Services
JAX-RPC API 1.0
The Runtime Client JAR Files
Examples of Clients That Invoke Web Services
Creating Java Client Applications to Invoke Web Services: Main Steps
Generating the Client JAR File by Running the clientgen Ant Task
Getting Information About a Web Service
Writing the Java Client Application to Invoke a Web Service
Writing a Simple Client Application
Writing a Client That Uses Out or In-Out Parameters
Writing an Asynchronous Client Application
Description of the Generated Asynchronous Web Service Client Stub
Writing the Asynchronous Client Java Code
Using Web Services System Properties
Invoking Web Services from WebLogic Server
Creating and Using Portable Stubs
Using the VersionMaker Utility to Update Client JAR Files
Writing Advanced Java Client Applications
Writing a Dynamic Client That Uses WSDL
Writing a Dynamic Client That Does Not Use WSDL
Writing a Dynamic Client That Uses Non-Built-In Data Types
Writing a J2ME Client
Writing a J2ME Client That Uses SSL
Using the WebLogic Web Services APIs
Overview of the WebLogic Web Service APIs
Registering Data Type Mapping Information in a Dynamic Client
Accessing HttpSession Information from a Web Service Component
Introspecting the WSDL from a Client Application
Using JMS Transport to Invoke a WebLogic Web Service
Overview of Using JMS Transport
Specifying JMS Transport for a WebLogic Web Service: Main Steps
Updating the web-services.xml File to Specify JMS Transport
Invoking a Web Service Using JMS Transport
Using Reliable SOAP Messaging
Overview of Reliable SOAP Messaging
Reliable SOAP Messaging Architecture
Receiver Transactional Context
Guidelines For Programming the EJB That Implements a Reliable Web Service Operation
Guidelines for Programming the Java Class That Implements a Reliable Web Service Operation
Configuring the Transaction
Limitations of Reliable SOAP Messaging
Using Reliable SOAP Messaging: Main Steps
Configuring the Sender WebLogic Server
Configuring the Receiver WebLogic Server
Writing the Java Code to Invoke an Operation Reliably
Handling Sender Server Failures
Updating the web-services.xml File Manually for Reliable SOAP Messaging
Using Non-Built-In Data Types
Overview of Using Non-Built-In Data Types
Creating Non-Built-In Data Types Manually: Main Steps
Writing the XML Schema Data Type Representation
Writing the Java Data Type Representation
Writing the Serialization Class
Creating the Data Type Mapping File
Updating the web-services.xml File With XML Schema Information
Creating SOAP Message Handlers to Intercept the SOAP Message
Overview of SOAP Message Handlers and Handler Chains
Creating SOAP Message Handlers: Main Steps
Designing the SOAP Message Handlers and Handler Chains
Implementing the Handler Interface
Implementing the Handler.init() Method
Implementing the Handler.destroy() Method
Implementing the Handler.getHeaders() Method
Implementing the Handler.handleRequest() Method
Implementing the Handler.handleResponse() Method
Implementing the Handler.handleFault() Method
Directly Manipulating the SOAP Request and Response Message Using SAAJ
The SOAPPart Object
The AttachmentPart Object
Manipulating Image Attachments in a SOAP Message Handler
Extending the GenericHandler Abstract Class
Updating the web-services.xml File with SOAP Message Handler Information
Using SOAP Message Handlers and Handler Chains in a Client Application
Configuring Security
Overview of Web Services Security
What Type of Security Should You Configure?
Configuring Message-Level Security (Digital Signatures and Encryption)
Main Use Cases
Unimplemented Features of the Web Services Security Core Specification
Terminology
Architectural Overview of Message-Level Security
Configuring Message-Level Security: Main Steps
Configuring The Identity Asserter Provider for the myrealm Security Realm
Updating the servicegen build.xml File
Updating Security Information in the web-services.xml File
Encrypting Passwords in the web-services.xml File
Updating a Java Client to Invoke a Data-Secured Web Service
Configuring Transport-Level Security (SSL): Main Steps
Configuring SSL for a Client Application
Using the WebLogic Server-Provided SSL Implementation
Configuring the WebLogic SSL Implementation Programatically
Using SSL Socket Sharing When Using the WebLogic SSL Implementation
Using a Third-Party SSL Implementation
Extending the SSLAdapterFactory Class
Configuring Two-Way SSL For a Client Application
Using a Proxy Server
Configuring Access Control Security: Main Steps
Controlling Access to WebLogic Web Services
Securing the Entire Web Service and Its Operations
Securing the Web Service URL
Securing the Stateless Session EJB and Its Methods
Securing the WSDL and Home Page of the Web Service
Specifying the HTTPS Protocol
Coding a Client Application to Authenticate Itself to a Web Service
Testing a Secure WebLogic Web Service From Its Home Page
Internationalization
Overview of Internationalization
Internationalizing a WebLogic Web Service
Specifying the Character Set for a WebLogic Web Service
Updating the web-services.xml File
Setting a WebLogic Server System Property
Order of Precedence of Character Set Configuration Used By WebLogic Server
Invoking a Web Service Using a Specific Character Set
Setting the Character Set When Invoking a Web Service
Character Set Settings in HTTP Request Headers Honored by WebLogic Web Services
Using SOAP 1.2
Overview of Using SOAP 1.2
Specifying SOAP 1.2 for a WebLogic Web Service: Main Steps
Updating the web-services.xml File Manually
Invoking a Web Service Using SOAP 1.2
Creating JMS-Implemented WebLogic Web Services
Overview of JMS-Implemented WebLogic Web Services
Designing JMS-Implemented WebLogic Web Services
Retrieving and Processing Messages
Example of Using JMS Components
Creating JMS-Implemented WebLogic Web Services
Configuring JMS Components for Message-Style Web Services
Assembling JMS-Implemented WebLogic Web Services Using servicegen
Assembling JMS-Implemented WebLogic Web Services Manually
Packaging the JMS Message Consumers and Producers
Updating the web-services.xml File With Component Information
Sample web-services.xml File for JMS Component Web Service
Deploying JMS-Implemented WebLogic Web Services
Invoking JMS-Implemented WebLogic Web Services
Invoking an Asynchronous Web Service Operation to Send Data
Invoking a Synchronous Web Service Operation to Send Data
Administering WebLogic Web Services
Overview of Administering WebLogic Web Services
Using the Administration Console to Administer Web Services
Publishing and Finding Web Services Using UDDI
Overview of UDDI
UDDI and Web Services
UDDI and Business Registry
UDDI Data Structure
WebLogic Server UDDI Features
UDDI 2.0 Server
Configuring the UDDI 2.0 Server
Description of Properties in the uddi.properties File
UDDI Directory Explorer
UDDI Client API
Pluggable tModel
XML Elements and Permissible Values
XML Schema for Pluggable tModels
Sample XML for a Pluggable tModel
Interoperability
Overview of Interoperability
Avoid Using Vendor-Specific Extensions
Stay Current With the Latest Interoperability Tests
Understand the Data Models of Your Applications
Understand the Interoperability of Various Data Types
Results of SOAPBuilders Interoperability Lab Round 3 Tests
Interoperating With .NET
Troubleshooting
Using the Web Service Home Page to Test Your Web Service
URL Used to Invoke the Web Service Home Page
Testing the Web Service
Viewing SOAP Messages
Setting Verbose Mode with Ant
Setting Verbose Mode Programatically
Posting the HTTP SOAP Message
Debugging Problems with WSDL
Verifying a WSDL File
Verifying an XML Schema
Debugging Data Type Generation (Autotyping) Problems
Common XML Schema Problems
Common Java Problems
Debugging Performance Problems
Performance Hints
Re-Resolving IP Addresses in the Event of a Failure
BindingException When Running clientgen or autotype Ant Task
Client Error When Using the WebLogic Web Service Client to Connect to a Third-Party SSL Server
Client Error When Invoking Operation That Returns an Abstract Type
Including Nillable, Optional, and Empty XML Elements in SOAP Messages
Upgrading WebLogic Web Services
Overview of Upgrading WebLogic Web Services
Upgrading a 7.0 WebLogic Web Service to 8.1
Upgrading a 6.1 WebLogic Web Service to 8.1
Converting a 6.1 build.xml file to 8.1
Updating the URL Used to Access the Web Service
Using WebLogic Workshop With WebLogic Web Services
Overview of WebLogic Workshop and WebLogic Web Services
WebLogic Workshop and WebLogic Web Services
EJBGen
Using Meta-Data Tags When Creating EJBs and Web Services
Using WebLogic Workshop To Create a WebLogic Web Service: A Simple Example
Using WebLogic Workshop To Create a WebLogic Web Service: A More Complex Example
Description of the Example
Assumptions
The Example
Sample build.xml File
Source Code for Supporting Java Objects
Item.java
PurchaseOrder.java
PurchasingManagerBean.java
PurchaseOrderFactory.javaWebLogic Web Service Deployment Descriptor Elements
Overview of web-services.xml
Graphical Representation
Element Reference
clock-precision
clocks-synchronized
components
ejb-link
encryptionKey
enforce-precision
fault
generate-signature-timestamp
handler
handler-chain
handler-chains
inbound-expiry
init-param
init-params
java-class
jms-receive-queue
jms-send-destination
jndi-name
name
operation
operations
outbound-expiry
param
params
password
reliable-delivery
require-signature-timestamp
return-param
security
signatureKey
spec:BinarySecurityTokenSpec
spec:ElementIdentifier
spec:EncryptionSpec
spec:SecuritySpec
spec:SignatureSpec
spec:UsernameTokenSpec
stateless-ejb
timestamp
type-mapping
type-mapping-entry
types
user
web-service
web-servicesWeb Service Ant Tasks and Command-Line Utilities
Overview of WebLogic Web Services Ant Tasks and Command-Line Utilities
List of Web Services Ant Tasks and Command-Line Utilities
Using the Web Services Ant Tasks
Differences in Operating System Case Sensitivity When Manipulating WSDL and XML Schema Files
Setting the Classpath for the WebLogic Ant Tasks
Using the Web Services Command-Line Utilities
autotype
clientgen
servicegen
servicegen
service
client
handlerChain
reliability
security
source2wsdd
wsdl2Service
wsdlgen
wspackage
source2wsdd Tag Reference
Overview of Using source2wsdd Tags
@wlws:webservice
@wlws:operation
@wlws:part partname
Customizing WebLogic Web Services
Publishing a Static WSDL File
Creating a Custom WebLogic Web Service Home Page
Assembling a WebLogic Web Service Manually
Overview of Assembling a WebLogic Web Service Manually
Assembling a WebLogic Web Service Manually: Main Steps
Understanding the web-services.xml File
Creating the web-services.xml File Manually: Main Steps
Creating the <components> Element
Creating <operation> Elements
Specifying the Type of Operation
Specifying the Parameters and Return Value of the Operation
Examining Different Types of web-services.xml Files
EJB Component Web Service with Built-In Data Types
EJB Component Web Service with Non-Built-In Data Types
EJB Component and SOAP Message Handler Chain Web Service
SOAP Message Handler Chain Web Service