0
votes

I am trying to return a Single.just(..) from my endpoint. I have created it using jersey and rx-jersey. I keep getting this message on my browser:

No serializer found for class io.reactivex.internal.operators.single.SingleJust and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

Here is my code:-

JerseyCOnfig:

@Component
public class JerseyConfig  extends ResourceConfig {

    public JerseyConfig() {
        register(RxJerseyServerFeature.class);
        register(RxJerseyClientFeature.class);
        register(new JacksonJsonProvider(new ObjectMapper().disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)));
        register(UserService.class);
    }
}

My End point

@Path("/users")
public class UserService {

    @GET
    @Path("/setup/rx")
    @Produces(MediaType.APPLICATION_JSON)
    public Single<User> setupRx() {
        return Single.just(new User(29));
    }
}

User:-

    public class User {

        private Integer age;
//getters and settters
1
Don't register your own JacksonJsonProvider. Use a ContextResolver. Or if you are using Spring Boot, just make an ObjectMapper @Bean - Paul Samsotha
It still does not work!!! gives me the same error - Amar Dev
Ok!!!.......... - Paul Samsotha

1 Answers

0
votes

It doesn't make sense for the jersey service to return any kind of observable. You would use chains of observables to produce concrete files or pages, but not observables.

In your case, the result of the GET method would be User, not instructions on how to get User.