RXjava десерилизация - PullRequest
0 голосов
/ 31 мая 2018

Я получаю исключение во время выполнения, когда мой http (204) пуст при выполнении блокирующего.
Кажется, он не может десериализовать пустой / пустой ответ http.Есть ли способ сделать это без получения исключения?
Поскольку я использую Spring, он помечает мою транзакцию как откат. Я хочу этого избежать, поскольку получение пустого тела не является ошибкой.

Single<myobject> cp = cpApi.findOne(myparam);
try {
    return cp.blockingGet();
} catch(RuntimeException t) {
    throw new RuntimeException(t.getMessage());
}

java.lang.ClassCastException: java.lang.String нельзя преобразовать в com.myproject.model.myobject в io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess (ConsumerSingleObserver.java:59) в io.reactivex.internal.operators.observable.ObservableSingleSingle $ SingleElementObserver.onComplete (ObservableSingleSingle.java:111) в retrofit2.adapter.rxjava2.Ява: 48)

1 Ответ

0 голосов
/ 31 мая 2018

Я понял это.Не самое элегантное решение, но оно работает.

myobject notfound = new myobject();
Single<myobject> cp = cpApi.findOne(myparam);
myobject r = cp.onErrorReturnItem(notfound).blockingGet();
if(r.equals(notfound))
   return null;
return r;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...