You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Anton Koscejev (JIRA)" <ji...@apache.org> on 2015/07/07 16:12:05 UTC
[jira] [Created] (CAMEL-8941) Restlet supports binary files only
with media type application/octet-stream
Anton Koscejev created CAMEL-8941:
-------------------------------------
Summary: Restlet supports binary files only with media type application/octet-stream
Key: CAMEL-8941
URL: https://issues.apache.org/jira/browse/CAMEL-8941
Project: Camel
Issue Type: Bug
Components: camel-restlet
Affects Versions: 2.15.2
Reporter: Anton Koscejev
The camel-restlet component populates Camel Exchange from Restlet Response via DefaultRestletBinding. However, it only properly reads binary contents if media type is "application/octet-stream". In all other cases it reads contents as String, even if contents are binary. For example, if the contents are of type "audio/wave" - a normal .wav file returned by a REST service - they would be read as a String, which results in an unplayable file.
See code extract:
{code}
if (mediaType != null && mediaType.equals(MediaType.APPLICATION_OCTET_STREAM)) {
exchange.getOut().setBody(response.getEntity().getStream());
} else if (response.getEntity() instanceof Representation) {
Representation representationDecoded = new DecodeRepresentation(response.getEntity());
exchange.getOut().setBody(representationDecoded.getText());
} else {
// get content text by default
String text = response.getEntity().getText();
LOG.debug("Populate exchange from Restlet response: {}", text);
exchange.getOut().setBody(text);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)