返回自定义对象并控制 JAX-RS 中的响应代码
我在 Web 应用程序中使用 JAX-RS 返回我自己的对象。 我想继续这样做,但我想设置HTTP响应代码(例如401表示未经授权,等等)。 从我发现的信息看来,我必须返回类型 Response 而不是我的自定义对象。 这是正确的吗?
我当前的代码(简化) - 当 MyReponse 是 Jaxb 知道如何处理的对象时:
@POST
@Produces({MediaType.APPLICATION_XML , MediaType.APPLICATION_JSON})
public MyResponse RegisterUser (
@FormParam("userName") String userName,
@FormParam("password") String password) {
// add user logic
return new MyResponse(....<params to ctor...);
}
I'm using JAX-RS in my web application to return my own object.
I want to keep doing it, but I want to set the HTTP response code (e.g. 401 for unauthorized, etc.).
From the information I've found it seems like I have to return the type Response and not my custom object.
Is that correct?
My current code (simplified) - when MyReponse is an object that Jaxb knows how to deal with:
@POST
@Produces({MediaType.APPLICATION_XML , MediaType.APPLICATION_JSON})
public MyResponse RegisterUser (
@FormParam("userName") String userName,
@FormParam("password") String password) {
// add user logic
return new MyResponse(....<params to ctor...);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的你是对的。
您需要使用类似的内容:
请参阅 http://jersey .java.net/nonav/documentation/latest/jax-rs.html#d4e355(和其他章节)以获取其他有用的信息。
Yes, you are right.
You'll need to use something like:
see http://jersey.java.net/nonav/documentation/latest/jax-rs.html#d4e355 (and other chapters) for additional useful information.
您可以扩展 Response 类,并在重写
getStatus()
方法时返回自定义状态。You can extend Response class and return your custom status when you override
getStatus()
method.