我试图构建一个 UI 来查看从我的应用程序发出的 SOAP 事务。
一个典型的场景是每个用户事务包括对多个系统的多个 Web 服务请求,我正在为该用户事务生成一个 transactionId,并在日志文件中使用该 transactionId 记录所有日志,以便可以使用 transactionId 搜索日志文件并且对应的日志语句可以显示在UI上。
因此,我能够将生成的 transactionId 附加到所有日志语句中,并能够从日志文件中提取它们。
但问题是对于 SOAP 请求,我无法找到一种方法来在 SOAP 请求的日志文件中添加相同的 transactionId。
有人可以向我提供一些指示,我如何将生成的 transactionId 传递给 CXF 拦截器(或自定义 CXF 拦截器),以便当 CXF 记录 SOAP 请求和响应时,它将附加传递的 transactionId。
像这样
INFO: Outbound Message
---------------------------
transactionId=1234ABCXXX
ID: 1
Address: http://localhost:8080/Zservice/get?wsdl
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml
Headers: {Accept=[*/*], SOAPAction=[""]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:get xmlns:ns2="http://service.zservice.com/"><arg0/></ns2:get></soap:Body></soap:Envelope>