HttpServletResponse response) throws TranscoderException {
try {
// Build TranscodingRequest from ResourceDescriptor.
TranscodingRequest transcodingRequest
= resDesc2TransReqConverter.convert(resourceDescriptor);
// Build DOM from Transcoding request.
Document document = transReq2DOMConverter.convert(transcodingRequest);
// Create SOAP envelope.
SOAPMessage requestMessage = soapMessageFactory.createMessage();
SOAPEnvelope requestEnvelope = requestMessage.getSOAPPart().getEnvelope();
SOAPBody requestBody = requestEnvelope.getBody();
requestBody.addDocument(document);
// Send SOAP request
SOAPConnection connection = soapConnectionFactory.createConnection();
SOAPMessage responseMessage = connection.call(requestMessage, stiServiceURL);
// Get STI response
SOAPEnvelope responseEnvelope = responseMessage.getSOAPPart().getEnvelope();
SOAPBody responseBody = responseEnvelope.getBody();
if (responseBody.hasFault()) {
final SOAPFault fault = responseBody.getFault();
throw new TranscoderException("soap-response-with-fault",
new Object[] { fault.getFaultCodeAsName(), fault.getFaultString() },
null);
}
document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Node node = responseBody.getFirstChild();
node = document.importNode(node, true);
document.appendChild(node);
// Create TranscodingResponse
TranscodingResponse transcodingResponse = dom2TransRespConverter.convert(document);
if (!transcodingRequest.getOperationID().equals(
transcodingResponse.getOperationID())) {
LOGGER.warn("invalid-operationID", new Object[] {
transcodingResponse.getOperationID(),
transcodingRequest.getOperationID()});
}
String contentID = transcodingResponse.getJobResult(0).getOutput().getLocation();
Iterator iterator = responseMessage.getAttachments();