X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fprocess%2FWebServiceSlcExecutionNotifier.java;fp=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fprocess%2FWebServiceSlcExecutionNotifier.java;h=2c6c8883b16164661306a2dbe0ab77a4629edb5b;hb=393360a1039a285ff22a33febd61ce1f5ca7f96e;hp=2af13bda8c442a134653235ac081b404634d4c8b;hpb=811459193b068c42c8b5483e94ed71a76389c5f2;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java index 2af13bda8..2c6c8883b 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java @@ -1,15 +1,18 @@ package org.argeo.slc.core.process; +import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; +import org.springframework.oxm.XmlMappingException; import org.springframework.ws.client.core.WebServiceTemplate; import org.springframework.ws.soap.SoapFaultDetail; import org.springframework.ws.soap.SoapFaultDetailElement; import org.springframework.ws.soap.client.SoapFaultClientException; +import org.springframework.xml.transform.StringResult; import org.w3c.dom.Node; import com.ibm.wsdl.util.IOUtils; @@ -30,8 +33,14 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier { SlcExecutionStepsRequest req = new SlcExecutionStepsRequest(); req.setSlcExecutionUuid(slcExecution.getUuid()); req.setSteps(additionalSteps); + if (log.isTraceEnabled()) { + for (SlcExecutionStep step : additionalSteps) { + log.trace("Step " + step.getUuid() + ": " + step.logAsString()); + } + } + try { - template.marshalSendAndReceive(req); + marshalSendAndReceive(req); if (log.isDebugEnabled()) log.debug("Added steps to slc execution " + slcExecution.getUuid()); @@ -44,7 +53,7 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier { SlcExecutionRequest req = new SlcExecutionRequest(); req.setSlcExecution(slcExecution); try { - template.marshalSendAndReceive(req); + marshalSendAndReceive(req); if (log.isDebugEnabled()) log.debug("Notified creation of slc execution " + slcExecution.getUuid()); @@ -57,9 +66,9 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier { SlcExecutionRequest req = new SlcExecutionRequest(); req.setSlcExecution(slcExecution); try { - template.marshalSendAndReceive(req); + marshalSendAndReceive(req); if (log.isDebugEnabled()) - log.debug("Notify update of slc execution " + log.debug("Notified update of slc execution " + slcExecution.getUuid()); } catch (SoapFaultClientException e) { manageSoapException(e); @@ -94,4 +103,18 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier { log.error("WS root cause stack: " + stack); } } + + protected Object marshalSendAndReceive(Object req) { + if (log.isTraceEnabled()) { + try { + StringResult result = new StringResult(); + template.getMarshaller().marshal(req, result); + log.trace("About to send " + result); + } catch (Exception e) { + log.error("Cannot marshall " + req + " for logging", e); + } + } + Object resp = template.marshalSendAndReceive(req); + return resp; + } }