流提供者未定义。必须在将第一个字节写入实体输出流之前进行设置

时间:2018-08-05 07:46:56

标签: rest jersey servlet-filters outputstream

我正在尝试修改所有回复。 为了实现这一点,我正在使用球衣ContainerResponseFilter。 但是我遇到了这个异常

未定义流提供程序。必须在将第一个字节写入实体输出流之前设置流提供程序。文本

outputstream提供程序由ContainerResponseContext提供。 我应该设定什么?

示例:---

public class FilterResp implements ContainerResponseFilter {
@Override
    public void filter(ContainerRequestContext arg0, ContainerResponseContext responsecotext) throws IOException {
        OutputStream entityStream = responsecotext.getEntityStream();
        responsecotext.setEntityStream(entityStream);
        entityStream.write("gfgfgf".getBytes());
        entityStream.flush();

    }
  

严重:路径为[/ PspServices]的上下文中的Servlet [Jersey Web应用程序]的Servlet.service()引发了异常[java.lang.IllegalStateException:流提供程序未定义。必须在将第一个字节写入实体输出流之前进行设置。]根本原因   java.lang.IllegalStateException:流提供程序未定义。必须在将第一个字节写入实体输出流之前进行设置。       位于jersey.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:149)       在org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream(CommittingOutputStream.java:200)       在org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream(CommittingOutputStream.java:195)       在org.glassfish.jersey.message.internal.CommittingOutputStream.write(CommittingOutputStream.java:229)

0 个答案:

没有答案