Over a million developers have joined DZone.

Handling Custom Objects With JAX-RS SSE API

DZone's Guide to

Handling Custom Objects With JAX-RS SSE API

In this post we take a look at how you can pass non-string types over the wire using JAX-RS SSE. Come check out a quick explanation and some code.

· Java Zone ·
Free Resource

Learn how to build stream processing applications in Java-includes reference application. Brought to you in partnership with Hazelcast.

Information sent using JAX-RS 2.1 SSE support (in Java EE 8) does not only have to be of String type – it supports Java primitives (Integer , Long etc.), JSON-B and JAX-B annotated types as well as custom objects whose encoding process (Java object to on-wire format) is defined using a MessageBodyWriter implementation

Here is a simple example you can try out – no need to setup anything except Docker !

Meanwhile – here is the code snippet:


public void fetch(@Context Sse sse, @Context SseEventSink eSink) {
OutboundSseEvent stringEvent = sse.newEventBuilder()
.data(new Date().toString()).build();

OutboundSseEvent primitiveTypeEvent = sse.newEventBuilder()


OutboundSseEvent jsonbType = sse.newEventBuilder()
.data(new Employee("test@test", "test", 42))

OutboundSseEvent jaxbType = sse.newEventBuilder()
.data(new Customer("testcut@test", "king"))


OutboundSseEvent customObjWithMBW = sse.newEventBuilder()
.data(new Student("stud@test", "stud-007")).build();

System.out.println("events sent");
System.out.println("sink closed");

To summarize

  • Multiple OutboundSseEvents have been created – each differing in the data/media type (text, JSON, XML etc.).
  • The default SSE media type is TEXT_PLAIN, and hence does not need to be explicitly specified when dealing with String data type.
  • Employee class is a JSON-B annotated class.
  • Customer is a JAX-B annotated class.
  • Student has a custom MesaageBodyWriter implementation.

For more details, just refer to the project

Further Reading


Learn how to build distributed stream processing applications in Java that elastically scale to meet demand- includes reference application.  Brought to you in partnership with Hazelcast.

java ee ,java ,sse ,objects ,api

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}