use of org.mule.runtime.soap.api.exception.DispatchingException in project mule by mulesoft.
the class DefaultHttpMessageDispatcher method dispatch.
/**
* {@inheritDoc}
* <p>
* Dispatches a Soap message through http adding the SoapAction header, if required, and the content-type.
*/
@Override
public DispatchingResponse dispatch(DispatchingRequest context) {
InputStream content = logIfNeeded("Soap Request to [" + context.getAddress() + "]", context.getContent());
HttpRequest request = HttpRequest.builder().uri(context.getAddress()).method(POST).entity(new InputStreamHttpEntity(content)).headers(new MultiMap<>(context.getHeaders())).build();
try {
HttpResponse response = client.send(request, DEFAULT_TIMEOUT_MILLIS, false, null);
return new DispatchingResponse(logIfNeeded("Soap Response", response.getEntity().getContent()), toHeadersMap(response));
} catch (IOException e) {
throw new DispatchingException("An error occurred while sending the SOAP request");
} catch (TimeoutException e) {
throw new DispatchingException("The SOAP request timed out", e);
}
}
use of org.mule.runtime.soap.api.exception.DispatchingException in project mule by mulesoft.
the class ReflectiveHttpConfigBasedRequester method request.
private Pair<InputStream, Map<String, String>> request(String method, String url, Map<String, String> headers, InputStream body) {
DefaultOperationParametersBuilder params = builder().configName(configName).addParameter("method", method).addParameter("url", url).addParameter("headers", new MultiMap<>(headers)).addParameter("targetValue", "#[payload]");
if (body != null) {
params.addParameter("body", new TypedValue<>(body, INPUT_STREAM));
}
try {
Result<Object, Object> result = client.executeAsync("HTTP", "request", params.build()).get();
Map<String, String> httpHeaders = getHttpHeaders(result);
InputStream content = getContent(result);
return new Pair<>(content, httpHeaders);
} catch (Exception e) {
throw new DispatchingException("Could not dispatch soap message using the [" + configName + "] HTTP configuration", e);
}
}
Aggregations