class HealthCheckSoapRequestClient extends SoapRequestClient {

    public HealthCheckResponse makeSoapRequestForHealthCheck(Element requestElement, URI uri) {
        LOG.info(MessageFormat.format("Making SOAP request to: {0}", uri));

        try {
            SoapResponse response = makePost(uri, requestElement);
            return new HealthCheckResponse(response.getBody());
        } catch(ProcessingException e) {
            throw ApplicationException.createUnauditedException(ExceptionType.NETWORK_ERROR, UUID.randomUUID(), e);
        } catch (SOAPRequestError e) {
            throw ApplicationException.createUnauditedException(ExceptionType.REMOTE_SERVER_ERROR, UUID.randomUUID(), e);
        }
    }

    @Inject public  HealthCheckSoapRequestClient(SoapMessageManager soapMessageManager, @Named("HealthCheckClient") Client client);

}