public void testEchoXMLASync() throws Exception { OMElement payload = createPayload(); Options clientOptions = new Options(); clientOptions.setTo(targetEPR); clientOptions.setTransportInProtocol(Constants.TRANSPORT_HTTP); AxisCallback callback = new AxisCallback() { public void onMessage(MessageContext msgContext) { SOAPEnvelope envelope = msgContext.getEnvelope(); OMElement data = (OMElement) envelope.getBody().getFirstElement().getFirstOMChild(); compareWithCreatedOMText(data.getText()); finish = true; } public void onFault(MessageContext msgContext) { SOAPEnvelope envelope = msgContext.getEnvelope(); OMElement data = (OMElement) envelope.getBody().getFirstElement().getFirstOMChild(); compareWithCreatedOMText(data.getText()); finish = true; } public void onError(Exception e) { log.info(e.getMessage()); finish = true; } public void onComplete() {} }; ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem( TestingUtils.prefixBaseDirectory("target/test-resources/integrationRepo"), null); ServiceClient sender = new ServiceClient(configContext, null); sender.setOptions(clientOptions); sender.sendReceiveNonBlocking(payload, callback); int index = 0; while (!finish) { Thread.sleep(1000); index++; if (index > 10) { throw new AxisFault("Server was shutdown as the async response take too long to complete"); } } }