Package javax.ws.rs.ext

Examples of javax.ws.rs.ext.MessageBodyWriter


        pf.registerUserProvider(provider);
        MessageBodyReader customJsonReader = pf.createMessageBodyReader((Class<?>)Book.class, null, null,
                                               MediaType.APPLICATION_JSON_TYPE, new MessageImpl());
        assertSame(customJsonReader, provider);
       
        MessageBodyWriter customJsonWriter = pf.createMessageBodyWriter((Class<?>)Book.class, null, null,
                                               MediaType.APPLICATION_JSON_TYPE, new MessageImpl());
        assertSame(customJsonWriter, provider);
    }
View Full Code Here


       
        MessageBodyReader customJsonReader2 = pf.createMessageBodyReader((Class<?>)Book.class, null, null,
                                                MediaType.APPLICATION_JSON_TYPE, new MessageImpl());
        assertSame(customJsonReader, customJsonReader2);
       
        MessageBodyWriter customJsonWriter = pf.createMessageBodyWriter((Class<?>)Book.class, null, null,
                                                MediaType.APPLICATION_JSON_TYPE, new MessageImpl());
        assertSame(customJsonReader, customJsonWriter);
       
        MessageBodyReader jsonReader = ProviderFactory.getSharedInstance().createMessageBodyReader(
            (Class<?>)Book.class, null, null, MediaType.APPLICATION_JSON_TYPE, new MessageImpl());
View Full Code Here

   
    @Test
    public void testGetBinaryProvider() throws Exception {
        verifyProvider(byte[].class, BinaryDataProvider.class, "*/*");
        verifyProvider(InputStream.class, BinaryDataProvider.class, "image/png");
        MessageBodyWriter writer = ProviderFactory.getInstance()
            .createMessageBodyWriter(File.class, null, null, MediaType.APPLICATION_OCTET_STREAM_TYPE,
                                     new MessageImpl());
        assertTrue(BinaryDataProvider.class == writer.getClass());
    }
View Full Code Here

        MediaType mType = MediaType.valueOf(mediaType);
       
        MessageBodyReader reader = pf.createMessageBodyReader(type, type, null, mType, new MessageImpl());
        assertSame("Unexpected provider found", provider, reader.getClass());
   
        MessageBodyWriter writer = pf.createMessageBodyWriter(type, type, null, mType, new MessageImpl());
        assertTrue("Unexpected provider found", provider == writer.getClass());
    }
View Full Code Here

   
    public <T> MessageBodyWriter<T> getMessageBodyWriter(Class<T> c, Type t,
            Annotation[] as,
            MediaType mediaType) {

        MessageBodyWriter p;

        if(!customWriterProviders.isEmpty()) {
            p = _getMessageBodyWriter(c, t, as, mediaType, customWriterProviders);
            if(p != null)
                return p;
View Full Code Here

    private <T> MessageBodyWriter<T> _getMessageBodyWriter(Class<T> c, Type t,
            Annotation[] as,
            MediaType mediaType,
            Map<MediaType, List<MessageBodyWriter>> providers) {

        MessageBodyWriter p = null;

        if (mediaType != null) {
            p = _getMessageBodyWriter(c, t, as, mediaType, mediaType, providers);
            if (p == null)
                p = _getMessageBodyWriter(c, t, as, mediaType,
View Full Code Here

        }

        final boolean isJavaScript = isJavascript(mediaType);
        final MediaType workerMediaType = isJavaScript ? MediaType.APPLICATION_JSON_TYPE : mediaType;

        MessageBodyWriter bw = bodyWorker.getMessageBodyWriter(entityType, entityGenericType, annotations, workerMediaType);
        if (bw == null) {
            if (!genericEntityUsed) {
                LOGGER.severe(ImplMessages.ERROR_NONGE_JSONP_MSG_BODY_WRITER_NOT_FOUND(jsonEntity, workerMediaType));
            } else {
                LOGGER.severe(ImplMessages.ERROR_JSONP_MSG_BODY_WRITER_NOT_FOUND(jsonEntity, workerMediaType));
            }
            throw new WebApplicationException(500);
        }


        if (isJavaScript) {
            entityStream.write(t.getCallbackName().getBytes());
            entityStream.write('(');
        }

        bw.writeTo(jsonEntity, entityType, entityGenericType, annotations, workerMediaType, httpHeaders, entityStream);

        if (isJavaScript) {
            entityStream.write(')');
        }
    }
View Full Code Here

            if (bodyEntity instanceof BodyPartEntity) {
                bodyClass = InputStream.class;
                bodyEntity = ((BodyPartEntity) bodyEntity).getInputStream();
            }

            final MessageBodyWriter bodyWriter = providers.getMessageBodyWriter(
                    bodyClass,
                    bodyClass,
                    EMPTY_ANNOTATIONS,
                    bodyMediaType);

            if (bodyWriter == null) {
                throw new WebApplicationException(
                        new IllegalArgumentException(
                                "No MessageBodyWriter for body part of type '" +
                                        bodyEntity.getClass().getName() + "' and media type '" +
                                        bodyMediaType + "'"));
            }

            bodyWriter.writeTo(
                    bodyEntity,
                    bodyClass,
                    bodyClass,
                    EMPTY_ANNOTATIONS,
                    bodyMediaType,
View Full Code Here


        final MultivaluedMap<String, Object> headers = ro.getHeaders();
        final MediaType mediaType = getMediaType(entityClass, entityType, headers);

        final MessageBodyWriter bw = workers.getMessageBodyWriter(
                entityClass, entityType,
                EMPTY_ANNOTATIONS, mediaType);
        if (bw == null) {
            throw new ClientHandlerException(
                    "A message body writer for Java type, " + entity.getClass() +
                    ", and MIME media type, " + mediaType + ", was not found");
        }

        final long size = headers.containsKey(HttpHeaders.CONTENT_ENCODING)
                ? -1
                : bw.getSize(entity, entityClass, entityType, EMPTY_ANNOTATIONS, mediaType);
        listener.onRequestEntitySize(size);

        final OutputStream out = ro.getAdapter().adapt(ro, listener.onGetOutputStream());
        try {
            bw.writeTo(entity, entityClass, entityType,
                    EMPTY_ANNOTATIONS, mediaType, headers, out);
            out.flush();
        } catch (IOException ex) {
            try { out.close(); } catch (Exception e) { }
            throw ex;
View Full Code Here

                contentType = MediaType.APPLICATION_OCTET_STREAM_TYPE;

            getHttpHeaders().putSingle(HttpHeaders.CONTENT_TYPE, contentType);
        }

        final MessageBodyWriter p = getMessageBodyWorkers().getMessageBodyWriter(
                entity.getClass(), entityType,
                annotations, contentType);
        if (p == null) {
            String message = "A message body writer for Java class " + entity.getClass().getName() +
                    ", and Java type " + entityType +
                    ", and MIME media type " + contentType + " was not found";
            LOGGER.severe(message);
            Map<MediaType, List<MessageBodyWriter>> m = getMessageBodyWorkers().
                    getWriters(contentType);
            LOGGER.severe("The registered message body writers compatible with the MIME media type are:\n" +
                    getMessageBodyWorkers().writersToString(m));

            if (request.getMethod().equals("HEAD")) {
                isCommitted = true;
                responseWriter.writeStatusAndHeaders(-1, this);
                responseWriter.finish();
                return;
            } else {
                throw new WebApplicationException(new MessageException(message), 500);
            }
        }

        final long size = p.getSize(entity, entity.getClass(), entityType,
                annotations, contentType);
        if (request.getMethod().equals("HEAD")) {
            if (size != -1)
                getHttpHeaders().putSingle(HttpHeaders.CONTENT_LENGTH, Long.toString(size));
            isCommitted = true;
            responseWriter.writeStatusAndHeaders(0, this);
        } else {
            if (request.isTracingEnabled()) {
                request.trace(String.format("matched message body writer: %s, \"%s\" -> %s",
                        ReflectionHelper.objectToString(entity),
                        contentType,
                        ReflectionHelper.objectToString(p)));
            }

            if (out == null)
                out = new CommittingOutputStream(size);
            p.writeTo(entity, entity.getClass(), entityType,
                    annotations, contentType, getHttpHeaders(),
                    out);
            if (!isCommitted) {
                isCommitted = true;
                responseWriter.writeStatusAndHeaders(-1, this);
View Full Code Here

TOP

Related Classes of javax.ws.rs.ext.MessageBodyWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.