Sjakie
10 years agoOccasional Contributor
Exception is not caught
Hello,
As I try to send a message to my System Under Test, I get a HttpHostConnectException when the system is not availble. I would like to catch the exception and handle it properly. Unfortunatly somehow this does not work. I use SoapUI Pro 5.1.2 on a Windows 7 Pro machine.
If use the following code:
public String sendMessage(String strAddress, String strMessageToSend) { //variables String strMessage; StringToObjectMap map = new StringToObjectMap() //preparation map.put("address", java.net.URLDecoder.decode(strAddress, "UTF-8")); //retrieve url to send to //Send message WsdlTestSuitePro tsWsdlTSP = context.getMockService().getProject().getTestSuiteByName("TestSuite"); WsdlTestCasePro tcWsdlTCP = tsWsdlTSP.getTestCaseByName("TestCase"); WsdlTestRequestStep trWSDLtrs = (WsdlTestRequestStep) tcWsdlTCP.getTestStepsOfType(WsdlTestRequestStep.class).get(0); //replace message with one that is given trWSDLtrs.getTestRequest().setRequestContent(strMessageToSend); //add the desired address trWSDLtrs.testRequest.setEndpoint(strAddress); //def runner = testcase.run(map, true); TestCaseRunner runner = null; try { runner = tcWsdlTCP.run(map, false); //wait for an answer log.info("Sim: Message sent to Consumer"); } // catch(HttpHostConnectException hhce) { // //hhce.printStackTrace(); // log.error("hhce: " + hhce.getMessage() ); // strMessage = hhce.getMessage(); // } catch(Exception e) { //e.printStackTrace(); log.error("Exception: " + e.getMessage() ); strMessage = e.getMessage(); } log.info(trWSDLtrs.RESPONSE_AS_XML); if (runner == null ) { strMessage = "An error has occured: " +strMessage } else if (runner.getStatus().toString().equals("FINISHED") ){ strMessage = "OK" } else { strMessage = runner.getReason(); } return strMessage; }
My logging prints the line "Sim: Message sent to Consumer". The error logging shows the complete stacktrace, The stacktrace refers to the line "runner = tcWsdlTCP.run(map, false); //wait for an answer".
Why is the exception not caught? Is there any other way of doing this? I just want to return the message of the HttpHostConnectException.
Thanks in advance!