I'll go so far as to suggest a change that would enable both of these. In
the DefaultRestletBinding class, the populateRestletResponseFromExchange
method could start like this:
public void populateRestletResponseFromExchange(Exchange exchange,
Response response) {
Object body = exchange.getOut().getBody();
MediaType mediaType = null;
String contentType = (String) exchange.getOut().getHeader(
CONTENT_TYPE_HEADER);
if (contentType != null) {
mediaType = MediaType.valueOf(contentType);
}
if (mediaType == null) {
if (body instanceof String) {
mediaType = MediaType.TEXT_PLAIN;
} else if (body instanceof StringSource || body instanceof
DOMSource)
{
mediaType = MediaType.TEXT_XML;
}
}
String responseCodeHeader = (String)
exchange.getOut().getHeader(
RESPONSE_STATUS_CODE_HEADER);
if (responseCodeHeader != null) {
response.setStatus(Status.valueOf(Integer
.parseInt(responseCodeHeader)));
}
... (rest of method is as before)
In this case, headers could be set that would indicate what content type /
status code to use, and the current behavior would be retained if not
specified.
nojonojo wrote:
Is there a way to set the content type and return code on the response
sent by the Restlet component? Looking at the code, it's clear that the
answer is no for the content type - you get either text/plain or
text/xml (no chance for application/JSON or anything else user-defined).
Thanks.
Nolan
--
View this message in context:
http://www.nabble.com/restlet-response-content-type-and-return-code-tp21819209s22882p21820115.html
Sent from the Camel - Users mailing list archive at Nabble.com.