The Web Service Client communication point supports RPC and document-based web services. A single communication point can call multiple operations hosted by the same web service. If multiple operations are supported, then a message property on the message (rhapsody:consumerOperation
) indicates which operation should be used.
Operational Modes
Supported Operational Modes: Output, Out -> In.
If running in Out->In mode and using an output only operation, the messages received from the communication point are identical to the message sent (assuming no fault occurred). If running in Output mode and using a request-response operation, the response message is discarded (custom fault processing still occurs, but cannot return a message to the route).
Using WSDLs
When parsing a WSDL, the Rhapsody engine extracts the following information:
- The service name.
- The available endpoints for the web service.
- The available operations (and namespaces) for the web service.
All these values can be manually set, if required, irrespective of whether a WSDL is used to generate the configuration. Manually configured values can use Rhapsody variables as part of the configuration.
Generating SOAP Requests and Responses
This communication point provides the following methods to generate the outgoing SOAP request:
- Use the Rhapsody message body as the entire SOAP envelope.
- Use the Rhapsody message body as the contents of the SOAP body.
- Build the contents of the SOAP body using a template, and map the message properties, fields or message body using XPaths to refer to locations in the template.
- Construct the SOAP message using JavaScript.
It provides the following methods to generate the incoming SOAP response:
- Replace the Rhapsody message body with the entire SOAP envelope from the response.
- Replace the Rhapsody message body with the contents of the SOAP body.
- Set message properties, the message body, and fields within the message using XPaths to extract values from the SOAP response.
- Execute custom JavaScript when SOAP response is received.
CDATA Support
Through the following configuration property in the rhapsody.properties
file, you can configure the web service framework to write either escaped or preserved CDATA sections to the content of SOAP requests and responses.
Property | Default Value | Description |
---|---|---|
WebServicesFramework.CDATA.preserve | False | Enables the web service framework either to preserve CDATA sections or escape them:
|
Configuration Properties
Click the Edit Communication Point Configuration link to view the properties you can configure.
General
Property |
Description |
---|---|
WSDL URL |
Click the Reload WSDL link to open the Load WSDL dialog, and enter the URL to retrieve the WSDL from, or its location on the local machine where Rhapsody IDE is running (not the location on the Rhapsody server):
Select the Specify an exact TLS version checkbox if you want the communication point to interpret your selected SSL Protocol as the exact version you want to use rather than the minimum version. If you require HTTP basic/digest authentication or HTTPS client authentication to retrieve the WSDL, then select the Authenticate when loading WSDL checkbox, and either the Username and Password must be entered, or a Private Key must be selected. Select the Load button to retrieve and parse the WSDL. If a Rhapsody variable containing any XML tags (in the form To load the WSDL into Rhapsody when the WSDL has external references to other WSDLs or schemas using absolute paths (for example
The default timeout of one minute is used. The value can be changed by setting the The SSL Protocol can also be selected when reloading a WSDL from a web service, and defaults to the SSL protocol on that web service client. Refer to TLS/SSL Support in Rhapsody for details. It is recommended that all calls to web services be secured if supported by the server, either by using TLS or the symmetric or asymmetric security bindings. |
Endpoint URL |
Selects the URL to use to send requests to the web service, or enter a custom endpoint. The custom endpoint can either be a message property (specified by starting the property name with a dollar '$' symbol), or a combination of a literal and Rhapsody variables. When you select a WSDL, the Endpoint URL is automatically set. |
SOAP Binding |
Selects the SOAP version:
When you select a WSDL, the SOAP binding is automatically updated to match the selected Endpoint URL. |
Send WS-Addressing Headers |
Determines whether the WS-Addressing headers should be sent in the outgoing SOAP request and expected in the SOAP response. It is enabled by default. |
Connection Timeout (ms) |
The length of time, in milliseconds, Rhapsody should wait for a connection attempt to succeed before aborting it. The default is 60,000 milliseconds. One of the following actions is taken after connection timeout:
|
HTTPS Client Authentication |
Whether to use HTTPS Client Authentication:
This property is unavailable if the selected Endpoint URL is a literal or value selected from the WSDL, and the URL does not use HTTPS. It is available if the URL is HTTPS, a message property or a Rhapsody variable. The Web Service Client communication point does not support pre-emptive authentication. |
SSL Protocol |
The SSL Protocol that should be used. Disabled if connecting to an older Rhapsody engine that does not support this functionality. Newly created web service clients default to |
SSL Cipher Suites |
Limits the SSL cipher suites that can be used, allowing a minimum encryption level to be set:
Disabled if connecting to an older Rhapsody engine that does not support this functionality. Newly created web service clients default to TLSv1 with strong ciphers. Refer to SSL Cipher Suites for details. |
Server Authentication | Determines how server authentication is performed when an HTTPS connection is in use:
|
Web Service Certificate |
Click the Select link to select the certificate used by the web service. If the connection uses HTTPS, then this certificate is used to authenticate the remote server if the Server Authentication property is set to Only available if using HTTPS with the |
Client Private Key |
Click the Select link to select the private key this communication point should use when talking to the web service. It is required if HTTPS client authentication is required or optional, but may be set even if that is not the case, as it is required when using asymmetric security binding. Only available if using HTTPS client authentication or asymmetric security binding. |
Message Definition |
Click the Select link to select the message definition to use when parsing the WSDL. The message definition is optional, but needed for the following operations:
|
Custom SOAP Header |
Can be set to a literal, message property or Rhapsody variable. When using a message property to set the Custom SOAP Header configuration property, ensure the message property is populated with the full SOAP header. Additionally, ensure Custom SOAP Header is set to this message property and nothing else. For example, setting Custom SOAP Header to |
Proxy
Property | Description |
---|---|
Proxy Enabled | Whether the communication point should connect via a proxy. |
Proxy Hostname | The hostname for the proxy server. |
Proxy Port | The port for the proxy server. If set to a value less than 1, the default HTTP port will be used. |
Proxy Username | The username to authenticate with the proxy server, if required. |
Proxy Password | The password to authenticate with the proxy server, if required. |
Security
Property |
Description |
---|---|
Security Binding |
Defines how the key exchange mechanism works:
Note that even if there is no security binding, the connection can still be secure if it uses HTTPS with an appropriate authentication mechanism. |
Authentication Method |
Determines how the client will authenticate itself to the web service:
|
Username |
The username that can be a literal, a Rhapsody variable, or a reference to a Rhapsody message property. The username is required when using HTTP Basic/Digest Authentication or Username Token Authentication. Rhapsody variables are referenced using the |
Password |
The password that can be a literal, a Rhapsody variable, or a reference to a Rhapsody message property. A blank password is permitted (although not recommended) for Username Token Authentication. Rhapsody variables are referenced using the As message properties are visible in the Management Console to users with the appropriate access rights, it is highly recommended that you encrypt passwords provided in this message using the Encrypt Password function in the Rhapsody IDE. Alternatively, you can use Configuration Templates, which do not require providing the password in a message property. If the passwords are retrieved from a Rhapsody variable using JavaScript, then the retrieval functions can leave them in this format. Refer to Encrypted Rhapsody Variables for details. |
Algorithm Suite |
Controls which set of algorithms are used for security. The default value is Only available when using asymmetric or symmetric security binding. |
Protection Order |
Determines whether messages are signed first or encrypted first:
Only available when using asymmetric or symmetric security binding. |
Initiator Token |
How the client's certificate should be referenced in the SOAP request:
Only available when using the asymmetric security binding. |
Recipient Token |
How the web service's certificate should be referenced in the SOAP request:
Only available when using asymmetric or symmetric security binding. |
Timestamp mode |
Determines whether a timestamp is included in the security header of the SOAP request and required in SOAP responses:
Only available when using transport, asymmetric or symmetric security binding (although it does not add anything when used with transport binding). |
Use Derived Keys |
Select to enable the use of the |
Encrypt Signatures | Select to encrypt the signature. Refer to Section 6.4 of the WS-SecurityPolicy 1.3 document for details. |
Signing / Encryption |
Options to sign and encrypt message content. The messages are effectively always signed and encrypted when using transport security binding as it uses HTTPS. Refer to Signing and Encryption Parameters for details. Only available when using asymmetric or symmetric security binding. |
Use Endorsing Supporting Tokens | Select to enable Endorsing Supporting Tokens. Refer to Section 8.3 of the WS-SecurityPolicy 1.3 document for details. |
Signing and Encryption Parameters
Property |
Description |
---|---|
Inherit settings from web service configuration |
Select to inherit the signing and encryption settings from the web service. |
Encryption Mode |
Determines whether the messages are encrypted and how:
|
Signing Mode |
Determines whether the messages are signed and how:
|
XML Namespace Mapping |
Provides a mapping of XML prefixes to namespace URIs. It is used to declare namespace prefixes used in the XPaths that select the components to sign and encrypt. If this map is empty and one of the encryption or signing modes is changed to sign/encrypt parts of the message, then an entry is automatically added here for the service namespace (as that is the namespace that is likely to be used). Only available if either the encryption or signing mode indicates that parts of the message body will be encrypted or signed. |
XPaths to Encrypt |
A set of XPaths (one per line) identifying components in the message that should be encrypted. A value here does not mean that the message must include a value at that location. Rather, it means that if the value is present, it must be encrypted. |
XPaths to Sign |
A set of XPaths (one per line) identifying components in the message that should be signed. |
Operations
An operation is configured in four parts:
- How to call the operation.
- How to generate the SOAP request.
- How to process the SOAP response.
- How to handle SOAP faults.
Refer to Web Service Operations for details.
Management
Field |
Description |
---|---|
Custom SOAP Headers |
The custom SOAP headers that are expected in the incoming requests. Custom header entries in a SOAP request can be enforced by clients by setting the If a SOAP request contains custom headers entries with the If you intend to use custom header entries, then you are responsible for implementing support for them in the Rhapsody configuration. If you want to use a Rhapsody variable that contains XML to set the custom header, ensure you pre-escape the XML to avoid configuration errors. For example, use the following value in a Rhapsody variable:
Escaped XML
<urn:SessionHeader xmlns:urn="urn:enterprise.soap.sforce.com"><urn:sessionId>00D630000008yXI!AQIAQJYQv9V9I3dnKzY7E0A0pCVNwghid8Jy5okgLGg3Lkf7D3I3OGWLRPion5_HTRUy_6ASrIHB6ByE_JTikP_GeKmToHC8</urn:sessionId></urn:SessionHeader> instead of:
Unescaped XML
<urn:SessionHeader xmlns:urn="urn:enterprise.soap.sforce.com"> <urn:sessionId>00D630000008yXI!AQIAQJYQv9V9I3dnKzY7E0A0pCVNwghid8Jy5okgLGg3Lkf7D3I3OGWLRPion5_HTRUy_6ASrIHB6ByE_JTikP_GeKmToHC8</urn:sessionId> </urn:SessionHeader> |