p.executeTarget(target != null ? target : p.getDefaultTarget());\r
} catch (Throwable e) {\r
exception = e;\r
+ log.error("Exception when running Ant: ",e);\r
} finally {\r
p.fireBuildFinished(exception);\r
}\r
\r
import java.util.List;\r
\r
+import org.springframework.ws.client.WebServiceIOException;\r
import org.springframework.ws.client.core.WebServiceTemplate;\r
import org.springframework.ws.soap.client.SoapFaultClientException;\r
\r
\r
private Log log = LogFactory.getLog(getClass());\r
\r
+ private Boolean cannotConnect = false;\r
+\r
public void newExecution(SlcExecution slcExecution) {\r
+ if (cannotConnect)\r
+ return;\r
+\r
SlcExecutionRequest req = new SlcExecutionRequest();\r
req.setSlcExecution(slcExecution);\r
try {\r
+ slcExecution.getUuid());\r
} catch (SoapFaultClientException e) {\r
WebServiceUtils.manageSoapException(e);\r
+ } catch (WebServiceIOException e) {\r
+ manageIoException(e);\r
}\r
}\r
\r
public void updateExecution(SlcExecution slcExecution) {\r
+ if (cannotConnect)\r
+ return;\r
+\r
SlcExecutionRequest req = new SlcExecutionRequest();\r
req.setSlcExecution(slcExecution);\r
try {\r
+ slcExecution.getUuid());\r
} catch (SoapFaultClientException e) {\r
WebServiceUtils.manageSoapException(e);\r
+ } catch (WebServiceIOException e) {\r
+ manageIoException(e);\r
}\r
}\r
\r
public void updateStatus(SlcExecution slcExecution, String oldStatus,\r
String newStatus) {\r
+ if (cannotConnect)\r
+ return;\r
+\r
SlcExecutionStatusRequest req = new SlcExecutionStatusRequest(\r
slcExecution.getUuid(), newStatus);\r
try {\r
+ slcExecution.getUuid());\r
} catch (SoapFaultClientException e) {\r
WebServiceUtils.manageSoapException(e);\r
+ } catch (WebServiceIOException e) {\r
+ manageIoException(e);\r
}\r
}\r
\r
public void addSteps(SlcExecution slcExecution,\r
List<SlcExecutionStep> additionalSteps) {\r
+ if (cannotConnect)\r
+ return;\r
+\r
SlcExecutionStepsRequest req = new SlcExecutionStepsRequest();\r
req.setSlcExecutionUuid(slcExecution.getUuid());\r
req.setSteps(additionalSteps);\r
+ slcExecution.getUuid());\r
} catch (SoapFaultClientException e) {\r
WebServiceUtils.manageSoapException(e);\r
+ } catch (WebServiceIOException e) {\r
+ manageIoException(e);\r
}\r
}\r
\r
this.template = template;\r
}\r
\r
+ protected void manageIoException(WebServiceIOException e) {\r
+ if (!cannotConnect) {\r
+ log.error("Cannot connect to " + template.getDefaultUri()\r
+ + ". Won't try again.", e);\r
+ cannotConnect = true;\r
+ }\r
+ }\r
+\r
}\r
package org.argeo.slc.core.test.tree;\r
\r
+import org.springframework.ws.client.WebServiceIOException;\r
import org.springframework.ws.client.core.WebServiceTemplate;\r
import org.springframework.ws.soap.client.SoapFaultClientException;\r
\r
\r
private Log log = LogFactory.getLog(getClass());\r
\r
+ private Boolean cannotConnect = false;\r
+\r
public void resultPartAdded(TreeTestResult testResult,\r
TestResultPart testResultPart) {\r
if (onlyOnClose)\r
return;\r
\r
+ if (cannotConnect)\r
+ return;\r
+\r
try {\r
if (testResult.getResultParts().size() == 1\r
&& testResult.getResultParts().values().iterator().next()\r
}\r
} catch (SoapFaultClientException e) {\r
WebServiceUtils.manageSoapException(e);\r
+\r
+ } catch (WebServiceIOException e) {\r
+ manageIoException(e);\r
}\r
}\r
\r
public void close(TreeTestResult testResult) {\r
+ if (cannotConnect)\r
+ return;\r
+\r
try {\r
if (onlyOnClose) {\r
CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(\r
}\r
} catch (SoapFaultClientException e) {\r
WebServiceUtils.manageSoapException(e);\r
+ } catch (WebServiceIOException e) {\r
+ manageIoException(e);\r
}\r
-\r
}\r
\r
public void setTemplate(WebServiceTemplate template) {\r
public void setOnlyOnClose(Boolean onlyOnClose) {\r
this.onlyOnClose = onlyOnClose;\r
}\r
+\r
+ protected void manageIoException(WebServiceIOException e) {\r
+ if (!cannotConnect) {\r
+ log.error("Cannot connect to " + template.getDefaultUri()\r
+ + ". Won't try again.", e);\r
+ cannotConnect = true;\r
+ }\r
+ }\r
}\r
public abstract class WebServiceUtils {\r
private final static Log log = LogFactory.getLog(WebServiceUtils.class);\r
\r
- public static Object marshalSendAndReceive(WebServiceTemplate template,\r
+ public static Object marshalSendAndReceiveSafe(WebServiceTemplate template,\r
Object req) {\r
+ try {\r
+ Object resp = marshalSendAndReceive(template, req);\r
+ return resp;\r
+ } catch (Exception e) {\r
+ log.error("Cannot send web servicerequest: "+e.getMessage());\r
+ if(log.isDebugEnabled()){\r
+ log.debug("Webservice exception details: ",e);\r
+ }\r
+ return null;\r
+ }\r
+ }\r
+\r
+ public static Object marshalSendAndReceive(\r
+ WebServiceTemplate template, Object req) {\r
if (log.isTraceEnabled()) {\r
try {\r
StringResult result = new StringResult();\r
</value>\r
</list>\r
</property>\r
- <property name="whitespacePreserve" value="true"/>\r
+ <property name="whitespacePreserve" value="true" />\r
</bean>\r
\r
+ <bean id="slcDefault.castor.xsltReportGenerator"\r
+ class="org.argeo.slc.core.test.tree.XsltReportGenerator"\r
+ init-method="init">\r
+ <property name="xsltStyleSheet"\r
+ value="classpath:/org/argeo/slc/core/test/tree/basicReport.xslt" />\r
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />\r
+ <property name="logXml" value="false" />\r
+ <!-- \r
+ <property name="outputDir" value="D:\dev\test\SLC\SlcReports" />\r
+ -->\r
+ </bean>\r
+\r
+\r
</beans>\r
WebServiceTemplate template = getBean(WebServiceTemplate.class);
CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(
createCompleteTreeTestResult());
+ req.getTreeTestResult().close();// in order to avoid unclosed in test db
log.info("Send CreateTreeTestResultRequest for result "
+ req.getTreeTestResult().getUuid());
public void testResultPartRequest() {
WebServiceTemplate template = getBean(WebServiceTemplate.class);
TreeTestResult ttr = createCompleteTreeTestResult();
+ ttr.close();// in order to avoid unclosed in test db
CreateTreeTestResultRequest reqCreate = new CreateTreeTestResultRequest(
ttr);
log.info("Send CreateTreeTestResultRequest for result "
<list merge="true">\r
<ref\r
bean="slcDefault.ws.client.treeTestResultWsNotfier" />\r
- <ref bean="xsltReportGenerator" />\r
+ <ref bean="slcDefault.castor.xsltReportGenerator" />\r
</list>\r
</property>\r
</bean>\r
\r
- <bean id="xsltReportGenerator"\r
- class="org.argeo.slc.core.test.tree.XsltReportGenerator"\r
- init-method="init">\r
- <property name="xsltStyleSheet"\r
- value="classpath:/org/argeo/slc/core/test/tree/basicReport.xslt" />\r
- <property name="marshaller" ref="slcDefault.castor.marshaller" />\r
- <property name="logXml" value="false" />\r
- <!-- \r
- <property name="outputDir" value="D:\dev\test\SLC\SlcReports" />\r
- -->\r
- </bean>\r
</beans>
\ No newline at end of file