2016-09-26 9 views
0

私はサーバーを持っていて、既存のものと同じ論理を持つサービスを追加します。したがって、私はこのコードを持っています:クライアントで空のジャージ応答ボディ

@RolesAllowed({"authenticated", "administrator"}) 
    @Path("notifications/{uuid}") 
    @Produces("application/json") 
@GET 
public Response getNotifications(@Context SecurityContext sc, @PathParam("uuid") String uuid) { 
    UserPrincipal requestingUser = (UserPrincipal) sc.getUserPrincipal(); 
    CountNotiListItem notifications = customerService.getNotifications(requestingUser, uuid); 
    return Response.ok().entity(notifications).build(); 
} 

通知オブジェクトはnullではありません。レスポンスは作成され、他のサービスと同じフォーマットですが、クライアント側では空の "_body" [20000 OK]レスポンスが返されます[_body:{}]なぜnullですか?私は誰かがいっぱいにするために何かを変更する必要がありますか?

答えて

1

JSONとの間でCountNotiListItemをシリアライズしてデシリアライズしようとするテストケースがありますか? notificationsが実際に空でない場合、そのテストでは表示されますか?それが私のこのデバッグの始まりでしょう。

+0

実際に、シリアライズおよびデシリアライズするコードを追加する必要があるかどうかはわかりません。私はそれを追加しなければならなかったが、プロジェクトは既に作成されているので(古い仕事のために)、このサービスを追加するだけでよい。私はそれがどのように機能するのかわかりません(私は春/ジャージーサービスで働いたことはありません)。これが仕事であれば、それをどこに含めるか教えてください。私は各オブジェクトの中に何があるかを示します。 notifications => 4つのプロパティを持つオブジェクト。 Response.ok()。エンティティ(通知).build()=> {エンティティ= CountNotiListItem通知オブジェクト、entityType = me.tomsen.restapi.eib.api.CountNotiListItem、ヘッダー= {}、statustype = OK} –

+0

"me.tomsen.restapi.eib.api.CountNotiListItem"にシリアライズコードとデシリアライズコードを追加しますか? –

+1

それは異なります。他の呼び出しが動作しているので、Jerseyに登録されているJSONプロバイダがあると仮定しています。適切な注釈を含めるのが最も一般的です。返されるクラスを見てください。おそらく@XmlRootElement – Friso

関連する問題