WAS v8.5 > WebSphere applications > Web services > Web servicesWS-I Basic Profile
- WS-I Basic Profile V1.2
Promotes interoperability between Web service components, including SOAP 1.1, XML 1.0, HTTP 1.1, WSDL 1.1, and UDDI. Also supports...
- WS-Addressing (WS-A)
Asynchronous messaging. Decouple service requests from service responses. The SOAP header of the sender's request contains the wsa:ReplyTo value that defines the endpoint reference to which the provider's response is sent. Decoupling the request from the response enables long running web services interactions. Programming model support is provided by in JAX-WS v2.1. The client process continues to work without waiting for a response to return.
- MTOM
Send and receive binary data optimally within a SOAP message.
- WS-I Basic Profile V2.0
Adds support for SOAP 1.2.
- WS-I Reliable Secure Profile 1.0
Secure reliable session-oriented web services interactions.
Builds on...
- WS-I Basic Profile V1.2
- WS-I Basic Profile V2.0
- WS-I Basic Security Profile V1.0
- WS-I Basic Security Profile V1.1
Adds support for...
- WS-Reliable Messaging 1.1
Session-based protocol that provides message level reliability.
- WS-Make Connection 1.0
Addresses scenarios where a web services endpoint is behind a firewall or the endpoint has no visible endpoint reference. If a web services endpoint loses connectivity during a WS-Reliable Messaging session, WS-Make Connection provides an efficient method to re-establish the reliable session.
- WS-Secure Conversation 1.3
Session-based security protocol that symmetric key based encryption.
Support for Universal Transformation Format (UTF)-16 encoding is required by WS-I Basic Profile. UTF-16 is a kind of Unicode encoding scheme that uses 16-bit values to store Universal Character Set (UCS) characters. UTF-8 is the most common encoding used on the Internet; UTF-16 encoding is typically used for Java and Windows product applications; and UTF-32 is used by various Linux and UNIX systems. Unlike UTF-8, UTF-16 has issues with big-endian and little-endian, and often involves Byte Order Mark (BOM) to indicate the endian. BOM is mandatory for UTF-16 encoding and it can be used in UTF-8.
The application server only supports UTF-8 and UTF-16 encoding of SOAP messages.
See the information on changing SOAP message encoding to support WSI-Basic Profile to learn how to modify your encoding from UTF-8 to UTF-16.
UTF properties. Corresponding bytes and encoding form for UTF properties.
Bytes Encoding form EF BB BF UTF-8 FF FE UTF-16, little-endian FE FF UTF-16, big-endian 00 00 FE FF UTF-32, big-endian FF FE 00 00 UTF-32, little-endian BOM is written prior to the XML text, and it indicates to the parser how the XML is encoded. The XML declaration contains the encoding, for example: <?xml version=xxx encoding="utf-xxx"?>. BOM is used with the encoding to determine how to interpret the XML. Here is an example of a SOAP message and how BOM and UTF encoding are used:
POST http://www.whitemesa.net/soap12/add-test-rpc HTTP/1.1 Content-Type: application/soap+xml; charset=utf-16; action="" SOAPAction: Host: localhost: 8080 Content-Length: 562OxFF0xFE<?xml version="1.0" encoding="utf-16"?> <soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope" xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding xmlns:tns="http://whitemesa.net/wsdl/soap12-test" xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <q1:echoString xmlns:q1="http://soapinterop.org/"> <inputString soap:encodingStyle="http://example.org/unknownEncoding" xsi:type="xsd:string"> Hello SOAP 1.2 </inputString> </q1:echoString> </soap:Body> </soap:Envelope>In the example code, 0xFF0xFE represents the byte codes, while the <?xml> declaration is the textual representation.
Support for styleEncoding is not supported in SOAP 1.2 so here is the same example of the SOAP message but without the encoding information:
OxFF0xFE<?xml version="1.0" encoding="utf-16"?> <soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope" xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding xmlns:tns="http://whitemesa.net/wsdl/soap12-test" xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <q1:echoString xmlns:q1="http://soapinterop.org/"> <inputString xsi:type="xsd:string"> Hello SOAP 1.2 </inputString> </q1:echoString> </soap:Body> </soap:Envelope>
Related concepts:
Differences in SOAP versions
Web Services Addressing support
Basic Security Profile compliance tips
What is new for securing web services
Related
Change SOAP message encoding to support WSI-Basic Profile
Enable MTOM for JAX-WS web services
Reference:
Web services specifications and APIs