[Jersey] Re: Message Body Writer

From: Suchitha Koneru (sukoneru) <"Suchitha>
Date: Wed, 13 Apr 2011 10:02:14 -0700

Hello Rimy,

We cannot return any of the basic data types (Integer, Short, Float
etc..) because there is no default mapping of basic data types to any
particular body format. Please see the attached mail


-----Original Message-----
From: Rimy Sfm []
Sent: Wednesday, April 13, 2011 5:57 AM
Subject: [Jersey] Re: Message Body Writer

I'm sorry I posted a wrong method declaration. Actually the method
causin me
the problem takes 2 integer as paramerter:

        public Integer add(@FormParam("a") Integer a,
@FormParam("b")Integer b)
                return a+b;

and this is the part of my client code whre I invoke it:

                                MultivaluedMapImpl formDataInt = new
                                        formDataInt.add("a", 2);
                                        formDataInt.add("b", 3);
                                        ClientResponse responseInt =
                                        String entityInt =
                                        System.out.println (entityInt);

And when I run my server I get this error:

GRAVE: Mapped exception to response: 500 (Internal Server Error)
com.sun.jersey.api.MessageException: A
message body writer for Java class java.lang.Integer, and Java type
java.lang.Integer, and MIME media type application/octet-stream was not

View this message in context:
Sent from the Jersey mailing list archive at

attached mail follows:

Hi Suchitha,

yes, you will need a separate writer for both single element and list.
To be able to consume such data, you will also need to implement
appropriate readers (MessageBodyReader).


On 03/16/2011 05:36 PM, Suchitha Koneru (sukoneru) wrote:

        Thanks Markus for the response. If I were to develop message body writers for basic data types (int, long ) etc should I develop two for each data type

        (one for basic data type and one for collection) , i.e.


        public class LongMesgWriter implements MessageBodyWriter<Long>




        public class LongCollMesgWriter implements MessageBodyWriter<Collection<Long>>



        could you please let me know





        From: Markus Karg []
        Sent: Tuesday, March 15, 2011 12:24 AM
        Subject: [Jersey] Re: returning basic data types


        There is no default mapping of basic data types to any particular body format, so you'll either can return a String instead, or you can provide a custom MessageBodyWriter which tells JAX-RS how the body format shall look like.


        From: Suchitha Koneru (sukoneru) []
        Sent: Montag, 14. März 2011 23:59
        Subject: [Jersey] returning basic data types


        Hello Jersey Users ,

                The following apis do not work, we are using Jersey 1.5 on Jboss with JDK 1.6; Is there any other way of returning basic data types (int, byte , short etc) ? I also tried changing the mime type to application/xml which does not help.







          public Long getLongBasic(){

                return new Long(1234);









          public long getLong(){

                return new Long(1234);





Jakub Podlesák
CZJUG co-lead,
Web Services Research And Development
Oracle, Czech s r.o.
Praha 4, V Parku 8