javax.xml.stream.XMLStreamException JSON表达式不能为空

时间:2012-10-29 06:12:28

标签: json web-services java-ee jersey

我知道这个异常报告给我的是什么。它是一个零回报。但我想传递一个null对象,并希望接收一个null对象。我不想检查null并创建一个空对象,它浪费了cpu资源,因为null传达了它所拥有的,没有找到数据。如何允许JSON发送空值。

OR

我在这里没有选择,我需要创建一个虚拟对象并通过线路发送它?

SubscriberListRequest request = new

SubscriberListRequest((SubscriberListConcrete)element.getValue()) ;
SubscriberListResponse response ;
clientSession = sessionManager.getClientSession(identityHash) ;
clientSession.getSendQueue().sendRequest(request) ;
try {
    response = (SubscriberListResponse)clientSession.waitAndGetResponse(request) ;
} catch (WaitedLongEnoughException e) {
    return Response.serverError().build() ;
} catch (UnableToResolveResponseException e) {
    return Response.serverError().build() ;
}
//
// Should I check for response.getSubscriberList() == null, create a new SubscriberList() and send it over the wire ?
//
return Response.ok(response.getSubscriberList()).build();

1 个答案:

答案 0 :(得分:1)

你无法真正通过null,所以我建议你使用Null对象模式(http://en.wikipedia.org/wiki/Null_Object_pattern)并创建一个静态空数组/列表在SubscriberListResponse中,如果没有结果,将从SubscriberListResponse.getSubscriberList()返回。然后,您不必在服务中检查null,而是在getSubscriberList中确保始终返回有效对象。