gpt4 book ai didi

java - 执行 POST HTTP 方法时, "Response.status(Status.CREATED)"被 eclipse 识别为类型 "Response"未定义

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:33 24 4
gpt4 key购买 nike

我正在学习本教程,以便学习如何编写 RESTful Web 服务代码 - tutorial 。在这里,我们尝试通过 Postman 发送状态代码 201 Created 以及新消息的发布。 。当我写下他在 4:47 写的代码行时,我在 eclipseoxygen 中收到错误:

      CREATED cannot be resolved or is not a field

我浏览了文档,但找不到正确的输入方法。也尝试导入更多的 Response 类,但这并没有解决问题。

这是出现问题的代码:

    return Response.status(Status.CREATED)
.entity(newMessage)
.build();

这是整个类(class):

    `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.ResponseStatusResponse 的静态内部类。因此,要么导入静态 Response.Status,要么只使用 Response.Status,而不仅仅是使用 Status。

更多信息请引用javadoc .

关于java - 执行 POST HTTP 方法时, "Response.status(Status.CREATED)"被 eclipse 识别为类型 "Response"未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51211453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com