gpt4 book ai didi

java - 从 Rest Web 服务返回 List

转载 作者:行者123 更新时间:2023-12-02 08:39:30 28 4
gpt4 key购买 nike

我正在学习 REST Web 服务。我编写了一个非常基本的代码来从网络服务返回一个列表。下面是代码片段

@Path("hello")
public class Hello {


@GET
@Produces(MediaType.TEXT_PLAIN)
public List<String> greeting() {

List<String> greeting = new ArrayList<>();
greeting.add("Hello World");
greeting.add("How are you");
greeting.add("Hope you are doing good");
greeting.add("Hey WhatsApp");
greeting.add("Take care");
greeting.add("Perform well");


return greeting;
}

}

messagebodywriter 实现如下

@Provider
@Produces(MediaType.TEXT_PLAIN)
public class ListMessageBodyWriter implements MessageBodyWriter<List<String>>{

@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
System.out.println("here in the isWriteable");

return type == List.class;
}

@Override
public void writeTo(List<String> t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType,
MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream)
throws IOException, WebApplicationException {

System.out.println("here in the writeTo");
System.out.println("t="+t);
System.out.println("size of t "+t.size());

Writer writer = new PrintWriter(entityStream);
writer.write("list of string will be returned later");
writer.flush();
writer.close();

}

但是当我运行代码时,我仍然遇到与下面相同的错误

未找到 Media type=text/plain、type=class java.util.ArrayList、genericType=java.util.List 的 MessageBodyWriter。

尽管实现了 messagebodywriter,为什么我还是会遇到相同的错误?

最佳答案

@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
System.out.println("here in the isWriteable");

return type == List.class;
}

返回类型== List.class;更改为

返回类型== ArrayList.class;解决了错误。

关于java - 从 Rest Web 服务返回 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61465025/

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