Dropwizard版本:1.1.4 jetty-server版本:2.25.1
错误发生在下面一行的代码中:Request.BufferEntity()
private String getBody(ContainerRequestContext requestContext) {
if (requestContext instanceof ContainerRequest) {
ContainerRequest request = (ContainerRequest) requestContext;
// calling bufferEntity(), without this the entity is marked as closed and causes IllegalStateExceptions
// on any subsequent read attempt
request.bufferEntity();
return request.readEntity(String.class);
} else {
// this should never happen as we are using jersey as the jax-rs implementation engine
throw new RuntimeException("ContainerRequestContext is not an instance of jersey ContainerRequest");
}
}
这个问题在1.3.8
中仍然存在,并且是一个公开的问题。
嗯。似乎有个变通办法。您可以创建一个筛选类,用于筛选异常并检查早期EOF。这是一个对我的案子非常特别的黑客。不过,你明白了。我已经测试过了,它起作用了。这是过滤器片段。
@Override
public void doFilter(
final ServletRequest request,
final ServletResponse response,
final FilterChain chain)
throws IOException, ServletException {
try {
chain.doFilter(request, response);
} catch (ServletException e) {
if (isEarlyEofException(e)) {
log.debug("EOF Exception encountered - client disconnected during stream processing.", e);
if (response instanceof HttpServletResponse) {
((HttpServletResponse) response).setStatus(HttpServletResponse.SC_BAD_REQUEST);
}
} else {
throw e;
}
}
}
private boolean isEarlyEofException(final ServletException e) {
return e.getCause() instanceof ProcessingException
&& e.getCause().getCause() instanceof EofException
&& e.getCause().getCause().getMessage().equals(EARLY_EOF_MSG);
}
然后应用筛选器。
private void addEarlyEofExceptionFilter(final Environment environment) {
final FilterRegistration.Dynamic filter =
environment.servlets().addFilter("EarlyEofExceptionFilter", EarlyEofExceptionFilter.class);
filter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
}
我在谷歌上搜索并找到了许多解决方案,但没有一个适合我。 我正试图通过连接到局域网中的远程服务器从一台机器上克隆 从另一台计算机运行此命令会导致错误 但是使用运行相同的克隆命令git://192.168.8.5 ... 在服务器上,一切正常且成功。 有什么想法吗? 我在但也没有帮助 使用git版本1.8.5.2。msysgit。0
我试图使用Kerberos从ActiveMQ-Camel桥向Kafka (Cloudera)发送消息。 ActiveMQ v5.15.4 骆驼:2.21.1 Kafka客户端:1.1.0 服务器版本:Apache/2.4.6(CentOS) 骆驼.xml剪刀是: 这是日志中的kafka客户端配置: 日志级别:调试 Jaas文件: 出口: 当我发送消息时,我在调试级别收到以下日志,但消息未被发送:
我有一套和一个方法: 我可以终止lambda内部的forEach吗(使用或不使用异常)?我应该使用匿名类吗? 我可以这样做: 我正在寻找最快的解决方案,所以异常和一个'real'为每个循环是可以接受的,如果他们是足够快的。
问题内容: 我陷入了这个非常奇怪的问题。在客户端中,我传递的对象是 在服务器中,我正在读取对象 我的问题是为什么我会出现EOF异常。我对对象输入流的理解是,当我调用readObject()时应该阻塞直到获得对象,这样才能知道是否达到了eof?请帮忙! 这就是我创建对象流的方式 另外,在我写完对象并刷新之后,我应该关闭流。我不会关闭它,因为对象是从代码的不同部分开始一个接一个地定期编写的。 问题答案
描述 (Description) 如果FILEHANDLE上的下一次读取将返回文件结尾,或者如果FILEHANDLE未打开,则此函数返回1。 没有参数的eof使用最后读取的文件。 使用带空括号的eof()是非常不同的。 它指的是由命令行中列出的文件形成的伪文件,可通过<>运算符访问。 语法 (Syntax) 以下是此函数的简单语法 - eof FILEHANDLE eof() eof 返回值 (