Example usage for org.springframework.http.converter HttpMessageNotWritableException HttpMessageNotWritableException

List of usage examples for org.springframework.http.converter HttpMessageNotWritableException HttpMessageNotWritableException

Introduction

In this page you can find the example usage for org.springframework.http.converter HttpMessageNotWritableException HttpMessageNotWritableException.

Prototype

public HttpMessageNotWritableException(String msg) 

Source Link

Document

Create a new HttpMessageNotWritableException.

Usage

From source file:net.gbmb.collector.rest.HttpRecordMessageConverter.java

@Override
public void write(CollectionRecord collectionRecord, MediaType mediaType, HttpOutputMessage httpOutputMessage)
        throws IOException {
    throw new HttpMessageNotWritableException("Not writable");
}

From source file:org.oncoblocks.centromere.web.util.FilteringJackson2HttpMessageConverter.java

@Override
protected void writeInternal(Object object, Type type, HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException {

    ObjectMapper objectMapper = getObjectMapper();
    JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(outputMessage.getBody());

    try {//from ww w.ja v  a  2 s.c o m

        if (this.prefixJson) {
            jsonGenerator.writeRaw(")]}', ");
        }

        if (object instanceof ResponseEnvelope) {

            ResponseEnvelope envelope = (ResponseEnvelope) object;
            Object entity = envelope.getEntity();
            Set<String> fieldSet = envelope.getFieldSet();
            Set<String> exclude = envelope.getExclude();
            FilterProvider filters = null;

            if (fieldSet != null && !fieldSet.isEmpty()) {
                if (entity instanceof ResourceSupport) {
                    fieldSet.add("content"); // Don't filter out the wrapped content.
                }
                filters = new SimpleFilterProvider()
                        .addFilter("fieldFilter", SimpleBeanPropertyFilter.filterOutAllExcept(fieldSet))
                        .setFailOnUnknownId(false);
            } else if (exclude != null && !exclude.isEmpty()) {
                filters = new SimpleFilterProvider()
                        .addFilter("fieldFilter", SimpleBeanPropertyFilter.serializeAllExcept(exclude))
                        .setFailOnUnknownId(false);
            } else {
                filters = new SimpleFilterProvider()
                        .addFilter("fieldFilter", SimpleBeanPropertyFilter.serializeAllExcept())
                        .setFailOnUnknownId(false);
            }

            objectMapper.setFilterProvider(filters);
            objectMapper.writeValue(jsonGenerator, entity);

        } else if (object == null) {
            jsonGenerator.writeNull();
        } else {
            FilterProvider filters = new SimpleFilterProvider().setFailOnUnknownId(false);
            objectMapper.setFilterProvider(filters);
            objectMapper.writeValue(jsonGenerator, object);
        }

    } catch (JsonProcessingException e) {
        e.printStackTrace();
        throw new HttpMessageNotWritableException("Could not write JSON: " + e.getMessage());
    }

}

From source file:com.btmatthews.leabharlann.view.FileContentMessageConverter.java

/**
 * Set the HTTP headers on the servlet response and stream the file contents to the servlet response's output stream.
 *
 * @param fileContent   Describes the file content.
 * @param outputMessage Used to access the servlet response headers and output stream.
 * @throws IOException                     If there was an error streaming the file content.
 * @throws HttpMessageNotWritableException If there was problem retrieving the file content from the Java Content Repository.
 *//*  w  w  w. ja v  a2s .  c o  m*/
@Override
protected void writeInternal(final FileContent fileContent, final HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException {
    try {
        jcrAccessor.withNodeId(fileContent.getWorkspace(), fileContent.getId(), new NodeCallback() {
            @Override
            public Object doInSessionWithNode(Session session, Node node) throws Exception {
                final Node resourceNode = node.getNode(Node.JCR_CONTENT);
                final String mimeType = jcrAccessor.getStringProperty(resourceNode, Property.JCR_MIMETYPE);
                final Calendar lastModified = jcrAccessor.getCalendarProperty(resourceNode,
                        Property.JCR_LAST_MODIFIED);
                final Binary data = jcrAccessor.getBinaryProperty(resourceNode, Property.JCR_DATA);
                if (jcrAccessor.hasProperty(resourceNode, Property.JCR_ENCODING)) {
                    final String encoding = jcrAccessor.getStringProperty(resourceNode, Property.JCR_ENCODING);
                    outputMessage.getHeaders().setContentType(new MediaType(MediaType.valueOf(mimeType),
                            Collections.singletonMap("charset", encoding)));
                } else {
                    outputMessage.getHeaders().setContentType(MediaType.valueOf(mimeType));
                }
                outputMessage.getHeaders().setContentLength(data.getSize());
                if (lastModified != null) {
                    outputMessage.getHeaders().setLastModified(lastModified.getTimeInMillis());
                }
                outputMessage.getHeaders().set("Content-Disposition", "attachment;filename=" + node.getName());
                IOUtils.copy(data.getStream(), outputMessage.getBody());
                return null;
            }
        });
    } catch (final RepositoryAccessException e) {
        throw new HttpMessageNotWritableException(e.getLocalizedMessage());
    }
}

From source file:hornet.framework.web.converter.AbstractHornetHttpMessageConverter.java

/**
 * Retourne le service grant l'export de l'objet donn en parametre
 *
 * @param toExport//from   w ww . java2s  . c om
 * @return
 * @throws HttpMessageNotWritableException
 */
protected U getServiceExport(final Object toExport) throws HttpMessageNotWritableException {

    U theService = null;

    for (final U exportServiceTest : getServicesExport()) {
        if (exportServiceTest.supports(toExport.getClass())) {
            theService = exportServiceTest;
            break;
        }
    }
    if (theService == null) {
        throw new HttpMessageNotWritableException(
                "Aucun service ne sait grer l'export de l'objet " + toExport.getClass());
    }
    return theService;
}

From source file:com.monarchapis.driver.spring.rest.ApiErrorResponseEntityExceptionHandlerTest.java

@Test
public void testHttpMessageNotWritableException() {
    performTest(//
            new HttpMessageNotWritableException("test"), //
            400, //
            "messageNotWritable");
}

From source file:com.onedrive.api.internal.MultipartRelatedHttpMessageConverter.java

@SuppressWarnings("unchecked")
private void writePart(String name, HttpEntity<?> partEntity, OutputStream os) throws IOException {
    Object partBody = partEntity.getBody();
    Class<?> partType = partBody.getClass();
    HttpHeaders partHeaders = partEntity.getHeaders();
    MediaType partContentType = partHeaders.getContentType();
    for (HttpMessageConverter<?> messageConverter : this.partConverters) {
        if (messageConverter.canWrite(partType, partContentType)) {
            HttpOutputMessage multipartMessage = new MultipartHttpOutputMessage(os);
            StringBuilder builder = new StringBuilder("<").append(name).append('>');
            multipartMessage.getHeaders().set("Content-ID", builder.toString());
            if (!partHeaders.isEmpty()) {
                multipartMessage.getHeaders().putAll(partHeaders);
            }//from w  w w .  ja  v a2 s  .c o  m
            ((HttpMessageConverter<Object>) messageConverter).write(partBody, partContentType,
                    multipartMessage);
            return;
        }
    }
    throw new HttpMessageNotWritableException("Could not write request: no suitable HttpMessageConverter "
            + "found for request type [" + partType.getName() + "]");
}

From source file:com.httpMessageConvert.FormHttpMessageConverter.java

@SuppressWarnings("unchecked")
private void writePart(String name, HttpEntity partEntity, OutputStream os) throws IOException {
    Object partBody = partEntity.getBody();
    Class<?> partType = partBody.getClass();
    HttpHeaders partHeaders = partEntity.getHeaders();
    MediaType partContentType = partHeaders.getContentType();
    for (HttpMessageConverter messageConverter : partConverters) {
        if (messageConverter.canWrite(partType, partContentType)) {
            HttpOutputMessage multipartOutputMessage = new MultipartHttpOutputMessage(os);
            multipartOutputMessage.getHeaders().setContentDispositionFormData(name, getFilename(partBody));
            if (!partHeaders.isEmpty()) {
                multipartOutputMessage.getHeaders().putAll(partHeaders);
            }/*  w ww.  jav  a 2s.co m*/
            messageConverter.write(partBody, partContentType, multipartOutputMessage);
            return;
        }
    }
    throw new HttpMessageNotWritableException(
            "Could not write request: no suitable HttpMessageConverter found for request type ["
                    + partType.getName() + "]");
}

From source file:org.springframework.http.converter.FormHttpMessageConverter.java

@SuppressWarnings("unchecked")
private void writePart(String name, HttpEntity<?> partEntity, OutputStream os) throws IOException {
    Object partBody = partEntity.getBody();
    if (partBody == null) {
        throw new IllegalStateException("Empty body for part '" + name + "': " + partEntity);
    }//from www . j  a va2  s.com
    Class<?> partType = partBody.getClass();
    HttpHeaders partHeaders = partEntity.getHeaders();
    MediaType partContentType = partHeaders.getContentType();
    for (HttpMessageConverter<?> messageConverter : this.partConverters) {
        if (messageConverter.canWrite(partType, partContentType)) {
            Charset charset = isFilenameCharsetSet() ? StandardCharsets.US_ASCII : this.charset;
            HttpOutputMessage multipartMessage = new MultipartHttpOutputMessage(os, charset);
            multipartMessage.getHeaders().setContentDispositionFormData(name, getFilename(partBody));
            if (!partHeaders.isEmpty()) {
                multipartMessage.getHeaders().putAll(partHeaders);
            }
            ((HttpMessageConverter<Object>) messageConverter).write(partBody, partContentType,
                    multipartMessage);
            return;
        }
    }
    throw new HttpMessageNotWritableException("Could not write request: no suitable HttpMessageConverter "
            + "found for request type [" + partType.getName() + "]");
}