You are viewing the documentation for Blueriq 13. Documentation for other versions is available in our documentation directory.
A Note on persistence has been added to clarifiy how the persistence parameter will work in 11. The behavior changes compared to 10. This page will replace Service call type: AQ_SoapServiceClient.
The AQ_SoapServiceClient
service calls a SOAP webservice. It is similar to the AQ_WebServiceClient
, but it handles only SOAP requests. AQ_SoapServiceClient
leverages on spring-ws WebServiceTemplate
which has the possibility to add additional security interceptors (http://docs.spring.io/spring-ws/site/reference/html/security.html). The features of the AQ_SoapServiceclient
are listed below:
- Basic authentication
- Timeout setting
- UsernameToken Profile V1.0
- X.509 Token Profile V1.0
- Signing
- Timestamp
- Encryption
- Logging request / response
- Exception handling for socket timeout
- Exception handling for SoapFault
- Map SoapFault to profile
- Sending and receiving attachments
- Dynamic urls
The AQ_SoapServiceClient
is available only in the Java Runtime.
Parameters
Name | Description | Type | Required | Direction | Select module |
---|---|---|---|---|---|
soapService | Name of SOAP service, with the module where it was defined. | Module Element | true | Input | true |
operation | The name of the operation that needs to be called. | String | true | Input | false |
url | The URL of the SOAP webservice. | String Expression | false | Input | false |
connectionOverride | Override the name of the used connection configuration from application.properties. This parameter may be used to share a configuration among multiple AQ_SoapServiceClient calls. | String Expression | false | Input | false |
mapping | Name of the data mapping to use, if a separate module is used for the WSDL. | Data mapping | false | BiDirectional | false |
username | Username to access the service. | String | false | Input | false |
password | Password to access the service. | String | false | Input | false |
soapFault | The type of the instance that should be updated when a soap fault occurs. | Entity | true | Output | false |
soapFaultCode | The attribute of the instance which should be updated with the soap fault code when a soap fault occurs. | Attribute | true | Output | false |
soapFaultMessage | The attribute of the instance which should be updated with the soap fault message when a soap fault occurs. | Attribute | true | Output | false |
connection | Connection to retrieve/store documents from/on. | String | false | BiDirectional | false |
fileList | The file(s) which will be attached and send. | Multivalued Entity Expression | false | Input | false |
fileRelation | The relation to hold returned files. | Relation | false | Output | false |
persistence | The persistence parameter indicates whether the system should clean up files at the end of the request (MemoryConnection)/session (FileSystemConnection). | Temporary / Permanent | false | Input | false |
caseId | The CaseId of the case the received documents belong to. | String Expression | false | Output | false |
file | The type of the instance that should be updated when a file is received. | Entity | false | Output | false |
fileId | The attribute of the instance which should be updated with the file id when a file is received. | Attribute | false | Output | false |
fileContentId | The attribute of the instance which should be updated with the file content id when a file is received. | Attribute | false | Output | false |
fileName | The attribute of the instance which should be updated with the file name when a file is received. | Attribute | false | Output | false |
fileType | The attribute of the instance which should be updated with the file type when a file is received. | Attribute | false | Output | false |
fileSize | The attribute of the instance which should be updated with the file size when a file is received. | Attribute | false | Output | false |
fileCreatedBy | The attribute of the instance which should be updated with the file created by attribute when a file is received. | Attribute | false | Output | false |
fileCreationDate | The attribute of the instance which should be updated with the file creation date when a file is received. | Attribute | false | Output | false |
Exit events
Name | Description | Type |
---|---|---|
Ok | When the SOAP request is executed successfully. | Continue |
Timeout | When the SOAP request returns a timeout exception. | Continue |
SoapFault | When the SOAP request returns a SOAP fault exception. | Continue |
Error | When the SOAP request returns other errors. | Cancel |
Exit events
Make sure to map these events and connect them in your flowing when migrating from AQ_Webserviceclient.
Otherwise a timeout will trigger the default exit, not the exception exit.
Note on persistence
Connection Type Persistence Clustered Notes Memory Temporary No The file is stored temporarily for the duration of the current request. At the end of the request the file is deleted. Memory connections and temporary persistence should be used when an uploaded/received file is immediately sent to a 3rd party system during the same request. Memory Temporary Yes Memory Permanent No Permanently storing files in a memory connections is not allowed. The Runtime will throw an exception when trying to permanently store files in a memory connection Memory Permanent Yes Other / FileSystem Temporary No The file is stored temporarily for the duration of the current session. At the end of the session the file is deleted. Other / FileSystem Temporary Yes The file is stored temporarily for the duration of the current session and a Quartz job is scheduled to delete the file. Other / FileSystem Permanent No The file is permanently stored in the connection and must be explicitly deleted when no longer needed. Other / FileSystem Permanent Yes
Configuration in application.properties
The default SOAP security properties can be defined using the following properties:
Name | Description | Type |
---|---|---|
blueriq.security.keystore.location | The path to the keystore file. The keys in the keystore will be used for signing and/or encrypting soap messages. | String |
blueriq.security.keystore.password | The password for the keystore file. | String |
blueriq.security.truststore.location | The path to the trust store containing the public keys/certificates of external hosts that should be trusted | |
blueriq.security.truststore.password | The password for the truststore file. | |
blueriq.soap.security.encryption.[name].keystore-alias | The alias of the certificate in the keystore that will be used for encrypting the soap message. | String |
blueriq.soap.security.encryption.[name].parts | The parts that should be encrypted. By default, the content of the SOAP body is encrypted. The syntax of this property is:
For example, the value {Content}{http://example.org/paymentv2}CreditCard;{Element}{None}Username has the following meaning:
| String |
blueriq.soap.security.encryption.[name].identifier | Specifies in what way the encryption key is identified. Possible values are: IssuerSerial, DirectReference, X509KeyIdentifier, Thumbprint, SKIKeyIdentifier | String |
blueriq.soap.security.encryption.[name].algorithm | The encryption algorithm to be used. Possible values are: | String |
blueriq.soap.security.signature.[name].keystore-alias | The alias of the private key in the keystore that will be used to sign the SOAP message. | String |
blueriq.soap.security.signature.[name].keystore-password | The password required to read the key from the keystore. | String |
blueriq.soap.security.signature.[name].parts | The parts that need to be signed. See the equivalent property for encryption for syntax and details. | String |
blueriq.soap.security.signature.[name].identifier | Specifies in what way the signature key is identified. Possible values are: IssuerSerial, DirectReference | String |
blueriq.soap.security.signature.[name].validate-response | Whether to validate the response, in case the SOAP service includes a signature configuration in the response. | Boolean |
blueriq.soap.security.timestamp.[name].timestampPrecisionInMilliseconds | Whether the timestamp precision should be in milliseconds. | Boolean |
blueriq.soap.security.usernametoken.[name].username | The username sent in the token. | String |
blueriq.soap.security.usernametoken.[name].password | The password sent in the token. | String |
blueriq.soap.security.usernametoken.[name].password-type | Whether the password is sent as plain text or digest. Possible values: PasswordText, PasswordDigest | String |
blueriq.soap.security.usernametoken.[name].created | Whether to include a Created timestamp in the token | Boolean |
blueriq.soap.security.usernametoken.[name].nonce | Whether to include a Nonce in the token | Boolean |
Soap connection properties:
Name | Description | Type |
---|---|---|
blueriq.connection.[serviceName].soap.url | The URL of the SOAP web service. | String |
blueriq.connection.[serviceName].soap.username | The username for basic authentication. | String |
blueriq.connection.[serviceName].soap.password | The password for basic authentication. | String |
blueriq.connection.[serviceName].soap.security.implementations | A comma separate list of security implementations (defined using the blueriq.soap.security.* properties) | String[] |
blueriq.connection.[serviceName].soap.timeout | The timeout in milliseconds. | Integer |
blueriq.connection.[serviceName].soap.client-certificate-alias-name | Uses the certificate that is defined by the alias name from the configured keystore(check security properties on how to specify the keystore). | String |
Troubleshoot
When migrating from the AQ_webserviceClient to the AQ_SoapserviceClient, you might run into an error.
"IllegalStateException: Security type for service name is null. Did you forgot to add this to the properties file? "
In your application.properties there's still a line that refers to the old webservice client. Search for: webservice.soap.security.implementations=
This line should be removed from your properties file. That should solve the problem.
How the URL is determined
- if the
connectionOverride
parameter is defined, the settings of that connection are used - if a connection with the same name as the service call is defined, the settings of that connection are used
- if the
url
parameter is defined, the value resulting from evaluating theurl
expression is used - otherwise, the URL in the WSDL is used