Hi there,

I created an Ivy webservice, and now from the service, I want to capture the raw XML from SOAP Message that user requests to my webservice to save to save somewhere. Is there any method to do it in Ivy ? I did a bit research and it seems possible in pure Java

Could you give me any idea ?

Thanks.

asked 20.10.2016 at 11:55

maonguyen's gravatar image

maonguyen
(suspended)
accept rate: 0%

edited 20.10.2016 at 12:50


Answer for 6.4.1 or younger

By default the request and response SOAP-ENVELOPE is logged to the runtimeLogger with the category web_service_process. alt text You may need to adjust your log4jconfig.xml so that the logs are collected in an extra log file: http://developer.axonivy.com/doc/latest/EngineGuideHtml/monitoring.html#d5e4421


Answer for 6.0 until 6.4

This is possible by registering a LogginIn/Out Intercepter for the webservice technology that we use (CXF). See http://stackoverflow.com/questions/8065737/how-to-log-apache-cxf-soap-request-and-soap-response-using-log4j

Unfortunately it seems like Designer users have no access to get into the relevant code parts to register custom interceptors. But I think that would be cool improvement for the future...

For now I can provide you a patch where these logging interceptors are in use. Just tell me the ivy version where you need it and whether you need it for a designer or an engine.

link

answered 24.10.2016 at 09:12

Reguel%20Wermelinger's gravatar image

Reguel Werme... ♦♦
9.4k31958
accept rate: 70%

edited 08.11.2016 at 17:23

Hi Reguel, dyumao and me need it for IVY 6.0.4 Designer & Engine. Can you provide us this patch please?

(24.10.2016 at 09:37) peter_muc peter_muc's gravatar image

The following jars will print CXF soap envelops to the system.error stream: - patch for the engine: patch.jar (simply drop into the /lib/patch directory of the engine - plugin for the designer: webservice.jar (may difficult to replace. Try to remove the old plugin within the /plugins directory and copy this replacement into it. Start the designer again.)

(24.10.2016 at 09:56) Reguel Werme... ♦♦ Reguel%20Wermelinger's gravatar image

Thank you Reguel, we can log the SOAP request to our log file for now. But we're facing a problem, from the Interceptor Customizing, we can't make reference to our implementation, or at least Ivy variables. Do you have any idea about this ?

(02.11.2016 at 11:34) maonguyen maonguyen's gravatar image

Can you describe in detail what you would like to expose? I see that it would may be interesting to see stuff like the process-element PID, session user/id, or the application/pmv. But most of them are already visible by the existing web_service_process runtime log which is sent on INFO level.

(02.11.2016 at 11:42) Reguel Werme... ♦♦ Reguel%20Wermelinger's gravatar image

In SOAP Request, it has this data, <noun>NOUN_DATA</noun>. I want to save the SOAP Request to a separated file named (0)-(1)-(2).xml, with (0) is value from noun param, (1) is Ivy Case Id for the current Webservice request, and (2) is value from Ivy Global Variable. Do you have any idea to deal with this in the Interceptor implementation ?

(04.11.2016 at 03:41) maonguyen maonguyen's gravatar image
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×48

Asked: 20.10.2016 at 11:55

Seen: 3,124 times

Last updated: 07.03.2018 at 10:20