Return String in DataHandler

dumazy picture dumazy · Mar 5, 2013 · Viewed 7.2k times · Source

I've created a web service in Java that returns a DataHandler. This has to be able to return a File, which works fine. But it should also be able to return a String. Any idea how I can transfer a String with a DataHandler?

Answer

Ian Roberts picture Ian Roberts · Mar 5, 2013

JavaMail has a ByteArrayDataSource that you can use for this purpose:

DataSource ds = new ByteArrayDataSource(theString, "text/plain; charset=UTF-8");
DataHandler handler = new DataHandler(ds);

The charset in the mime type determines what encoding it will use to convert the string to bytes.