public <T> byte[] toBytes(MediaType mediaType, T o) throws IOException { if (o == null) { return null; } Class<T> clazz = (Class<T>) o.getClass(); MessageBodyWriter<T> writer = findWriter(clazz, null, EMPTY_ANNOTATIONS, mediaType); if (writer == null) { throw new IllegalArgumentException( "cannot convert " + clazz.getName() + " into byte[] (" + mediaType + ")"); } ByteArrayOutputStream baos = new ByteArrayOutputStream(512); writer.writeTo(o, clazz, clazz, EMPTY_ANNOTATIONS, mediaType, EMPTY_OBJECT_HEADERS, baos); return baos.toByteArray(); }