[英]CXF return list of elements
這很好用:
@GET
@Path("elements")
public List<Element> getElements(@HeaderParam(SESSION_TOKEN) String token) {
try {
if (token != null) {
Session session = new Session();
if (session.initWithToken(token)) {
ElementFacade sf = ElementFacade.getInstance();
return sf.getElements(session.getUser());
}
}
} catch (Throwable th) {
log.error("", th);
}
return new ArrayList<Element>();
}
我得到一個帶有對象的很好的JSON數組。
現在的問題是,我想將數據作為有效負載放入響應中,以便能夠設置標頭和狀態並可以選擇將錯誤對象作為有效負載返回。 但這是行不通的。
@GET
@Path("elements2")
public Response getElements2(@HeaderParam(SESSION_TOKEN) String token) {
try {
if (token == null) {
return ResponseFactory.createResponse(401, 4007);
}
Session session = new Session();
if (session.initWithToken(token)) {
ElementFacade sf = ElementFacade.getInstance();
return Response.status(200)
.header(Endpoint.SESSION_TOKEN, session.getToken())
.entity(sf.getElements(session.getUser())).build();
}
return ResponseFactory.createResponse(403, 4006);
} catch (InvalidTokenException e) {
return ResponseFactory.createResponse(401, 4005);
} catch (SessionTimeoutException e) {
return ResponseFactory.createResponse(401, 4004);
} catch (Throwable th) {
log.error("", th);
return ResponseFactory.createResponse(500, 5099);
}
}
Mai 16,2012 7:00:35 PM org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor writeResponseErrorMessage警告:尚未找到響應類ArrayList的消息正文編寫器。
如何使用與第二個功能中第一個功能相同的現有功能?
我讀了一些有關編寫自己的MessageBodyWriter的內容,但是在該類中,我需要將整個JSON寫入OutputStream中,這似乎需要大量工作和開銷。
提前致謝
真是太容易了。 但尚未在任何文檔中找到它...
我嘗試了很多,然后baammm ...
@GET
@Path("elements2")
public Response getElements2(@HeaderParam(SESSION_TOKEN) String token) {
try {
if (token == null) {
return ResponseFactory.createResponse(401, 4007);
}
Session session = new Session();
if (session.initWithToken(token)) {
ElementFacade sf = ElementFacade.getInstance();
List<Element> list = sf.getElements(session.getUser());
return Response.status(200)
.header(Endpoint.SESSION_TOKEN, session.getToken())
.entity(new GenericEntity<List<Element>>(list) {}).build();
}
return ResponseFactory.createResponse(403, 4006);
} catch (InvalidTokenException e) {
return ResponseFactory.createResponse(401, 4005);
} catch (SessionTimeoutException e) {
return ResponseFactory.createResponse(401, 4004);
} catch (Throwable th) {
log.error("", th);
return ResponseFactory.createResponse(500, 5099);
}
}
就這樣...您只需要創建一個GenericEntity ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.