此内容没有您所选择的语言版本。
Chapter 20. Debugging
20.1. Message Tracing
Message tracing provides a view of the content and context of a message exchange on the SwitchYard bus. Message tracing prints exchange information to the log. An exchange interceptor that generates the trace, is triggered at the following points:
- Immediately after the consumer sends the request message. For example, In the case of a service which is invoked from a service binding, this is the point at which the gateway binding puts the message onto the bus.
- Immediately before the service provider is invoked.
- Immediately after the service provider is invoked.
- At completion of the exchange before the message is returned to the consumer.
20.1.1. Trace Output Example
Trace output includes details on the metadata, context properties, payload, and attachments for a message exchange. Here is an example of a trace entry:
12:48:25,038 INFO [org.switchyard.handlers.MessageTraceHandler] ------- Begin Message Trace ------- Consumer -> {urn:switchyard-quickstart:bean-service:0.1.0}OrderService Provider -> [unassigned] Operation -> submitOrder MEP -> IN_OUT Phase -> IN State -> OK Exchange Context -> org.switchyard.bus.camel.consumer : ServiceReference [name={urn:switchyard-quickstart:bean-service:0.1.0}OrderService, interface=BaseServiceInterface [type=wsdl, operations=[submitOrder : IN_OUT : [{urn:switchyard-quickstart:bean-service:1.0}submitOrder, {urn:switchyard-quickstart:bean-service:1.0}submitOrderResponse, null]]], domain=ServiceDomain [name=org.switchyard.domains.root]] org.switchyard.exchangeGatewayName : _OrderService_soap_1 org.switchyard.bus.camel.securityContext : SecurityContext[credentials=[ConfidentialityCredential [confidential=false]], securityDomainsToSubjects={}] org.switchyard.exchangeInitiatedNS : 1375980505021790000 CamelCreatedTimestamp : Thu Aug 08 12:48:25 EDT 2013 org.switchyard.bus.camel.phase : IN org.switchyard.bus.camel.dispatcher : org.switchyard.bus.camel.ExchangeDispatcher@b4aa453 org.switchyard.bus.camel.labels : {org.switchyard.exchangeGatewayName=[org.switchyard.label.behavior.transient]} CamelToEndpoint : direct://%7Burn:switchyard-quickstart:bean-service:0.1.0%7DOrderService org.switchyard.bus.camel.contract : org.switchyard.metadata.BaseExchangeContract@2176feaf org.switchyard.bus.camel.replyHandler : org.switchyard.component.common.SynchronousInOutHandler@516a4aef CamelFilterMatched : false Message Context -> org.switchyard.bus.camel.labels : {org.switchyard.contentType=[org.switchyard.label.behavior.transient], org.switchyard.bus.camel.messageSent=[org.switchyard.label.behavior.transient]} org.switchyard.messageId : ID-kookaburra-local-49858-1375980502093-0-1 org.switchyard.bus.camel.messageSent : true org.switchyard.soap.messageName : submitOrder org.switchyard.contentType : {urn:switchyard-quickstart:bean-service:1.0}submitOrder breadcrumbId : ID-kookaburra-local-49858-1375980502093-0-1 Message Content -> <?xml version="1.0" encoding="UTF-8"?><orders:submitOrder xmlns:orders="urn:switchyard-quickstart:bean-service:1.0"> <order> <orderId>PO-19838-XYZ</orderId> <itemId>BUTTER</itemId> <quantity>200</quantity> </order> </orders:submitOrder> ------ End Message Trace -------
20.1.2. Enabling Message Tracing
You can enable message tracing within JBoss Developer Studio.
- When using the SwitchYard visual editor to view the
switchyard.xml
file, select the tab to view the Domain Settings, then select the Enable Message Trace check box.
This sets the value of the org.switchyard.handlers.messageTrace.enabled property to
true
in your application domain. This is captured by the <sy:domain> element in the switchyard.xml
source file.