【问题标题】:Java http server wont receive more then onceJava http服务器不会收到超过一次
【发布时间】:2016-08-05 17:32:50
【问题描述】:

所以我把这个简单的 java HTTP 服务器放在一起,(我知道 Jetty 分机。我需要自己的。) 我可以提出请求、接收并做出响应。但只有一次。 之后,我什么都没有收到。这很奇怪,iv 尝试在每次请求后终止连接以强制重置,但它只是不想与它有任何关系。

Chrome 开发工具:

当控制台显示时:

Trying to bind to localhost on port 8080...OK!

Ready, Waiting for connections...
24.---.---.--- connected to server.
    24.---.---.--- requested /index.html ... processed OK.
24.---.---.--- connected to server. (I don't get any data, just times out)

我期待对 favicon.ico 的请求,但一无所获。 其次,如果我刷新页面,我会得到另一个不请求任何内容的连接。和 Chrome 报告:

The 24.---.---.--- page isn’t working
24.---.---.--- didn’t send any data.
ERR_EMPTY_RESPONSE

这是source

试过了:

  • 关闭套接字
  • 冲洗输出
  • 删除对象
  • 在 1 个请求后关闭所有 I/o。
  • 重构为使用 soTimeout 以超时关闭连接。

不知道。

【问题讨论】:

    标签: java sockets google-chrome http


    【解决方案1】:

    问题不在于 HTTP 服务器。

    用新的眼光看了之后,问题出在我的线程池中。该池正在处理 1 个请求,然后自行关闭,这似乎是一个 HTTP 问题。

    RequestHelper.execute()
    

    不会像您期望的那样运行,它会将其添加到队列中,而不是您必须创建一个循环来从 List 堆栈中弹出 Runnable 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 2018-08-03
      • 2016-10-18
      • 1970-01-01
      • 2013-07-15
      相关资源
      最近更新 更多