【发布时间】:2020-04-28 02:21:08
【问题描述】:
我正在学习 REST 网络服务。我编写了一个非常基本的代码来从 web 服务返回一个列表。下面是代码sn-p
@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();
}
但是当我运行代码时,我仍然得到与下面相同的错误
找不到媒体 type=text/plain、type=class java.util.ArrayList、genericType=java.util.List 的 MessageBodyWriter。
为什么尽管实现了 messagebodywriter 却得到同样的错误?
【问题讨论】:
-
请编辑问题并显示更多错误堆栈调用
-
这是我得到的唯一错误行。你认为我的 messagebodywriter 实现是否正确?