How can I print incoming and outgoing SOAP messages on my Web services server?
The message handler chain can be modified to add code that dumps the contents of the SOAP message and response.
| factory pluggableHandler |
factory := ( SstWSContainer containerNamed: 'VastSampleServerContainer' ) handlerFactory.
pluggableHandler :=SstWSPluggableHandler new
invokeBlock: [ :anSstWSMessageContext | | message |
[
message := anSstWSMessageContext propertyNamed: ##wsTransportMessageRequest.
AbtXmlUtility logError: 'Request->'.
AbtXmlUtility logError: message header debugPrintString.
AbtXmlUtility logError: message contents asString.
AbtXmlUtility logError: ''.
AbtXmlUtility logError: 'Response->'.
" NOTE: The output message is not stored in the message context. "
AbtXmlUtility logError:
(anSstWSMessageContext container serializationManager
serialize: anSstWSMessageContext currentMessage
context: anSstWSMessageContext )] fork
].
factory
register: pluggableHandler
named: 'wsHttpServerResponseHandler'
inNamespace: factory globalNamespace
To disable the tracing code, execute the snippet below:
| factory |
factory := ( SstWSContainer containerNamed: 'VastSampleServerContainer' ) handlerFactory.
factory
register: SstWSNoOperationHandler default
named: 'wsHttpServerResponseHandler' inNamespace: factory globalNamespace
-------------------------------
Last modified date: 04/08/2023