RXjava deserilization

时间:2018-05-30 21:56:11

标签: java spring rx-java

当我的http(204)在执行阻塞时为空时,我得到一个运行时异常 它似乎无法反序列化null /空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 at   io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:59)     在   io.reactivex.internal.operators.observable.ObservableSingleSingle $ SingleElementObserver.onComplete(ObservableSingleSingle.java:111)     在   retrofit2.adapter.rxjava2.BodyObservable $ BodyObserver.onComplete(BodyObservable.java:66)     在   retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:48)

1 个答案:

答案 0 :(得分:0)

我明白了。不是最优雅的解决方案,但它有效。

myobject notfound = new myobject();
Single<myobject> cp = cpApi.findOne(myparam);
myobject r = cp.onErrorReturnItem(notfound).blockingGet();
if(r.equals(notfound))
   return null;
return r;