![](/img/trans.png)
[英]Why is '302' not defined in Response.Status of javax.ws.rs?
[英]When performing a POST HTTP method the “Response.status(Status.CREATED)” is recognised as undefined for the type “Response” by eclipse
我正在关注本教程,以学习如何编写RESTful Web服务代码- 教程 。 在这里,我们尝试通过Postman发送状态码201 Created
以及新消息的发布。 当我写他在4:47编写的代码行时,日蚀氧气发生错误:
CREATED cannot be resolved or is not a field
我仔细阅读了文档,但是找不到正确的键入方式。 试图也导入更多的Response类,但这并没有解决。
这是发生问题的代码:
return Response.status(Status.CREATED)
.entity(newMessage)
.build();
这是整个课程:
`import java.net.URI;
import java.util.List;
import javax.net.ssl.SSLEngineResult.Status;
import javax.ws.rs.BeanParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.core.Response.ResponseBuilder;
import org.hristo.javabrains.messenger.model.Message;
import org.hristo.javabrains.messenger.resources.beans.MessageFilterBean;
import org.hristo.javabrains.messenger.service.MessageService;
import com.sun.research.ws.wadl.Response;
@Path("messages")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class MessageResource {
MessageService messageService = new MessageService();
@GET
public List<Message> getMessages(@BeanParam MessageFilterBean filterBean) {
if(filterBean.getYear() > 0) {
return messageService.getAllMessagesForYear(filterBean.getYear());
}
if(filterBean.getStart() >= 0 && filterBean.getSize() >= 0) {
return messageService.getAllMessagesPaginated(filterBean.getStart(), filterBean.getSize());
}
return messageService.getAllMessages();
}
@POST
public Response addMessage(Message message, @Context UriInfo uriInfo) {
Message newMessage = messageService.addMessage(message);
String newId = String.valueOf(newMessage.getId());
URI uri = uriInfo.getAbsolutePathBuilder().path(newId).build();
return Response.status(Status.CREATED)
.entity(newMessage)
.build();
}
@PUT
@Path("{messageId}")
public Message updateMessage(@PathParam("messageId") long messageId, Message message) {
message.setId(messageId);
return messageService.updateMessage(message);
}
@DELETE
@Path("{messageId}")
public Message removeMessage(@PathParam("messageId") long messageId) {
return messageService.removeMessage(messageId);
}
@GET
@Path("{messageId}")
public Message getMessage(@PathParam("messageId") long messageId) {
return messageService.getMessage(messageId);
}
@Path("{messageId}/comments")
public CommentResource getCommentResource() {
return new CommentResource();
} }
Response
导入应该为javax.ws.rs.core.Response
并且Status
是Response
的静态内部类。 因此,要么导入静态Response.Status
要么仅使用Response.Status
而不是Status
。
有关更多信息,请参考javadoc 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.