2016-08-05 16 views
0

Also habe ich diesen einfachen Java-HTTP-Server zusammen, (Ich weiß über Jetty ext. Ich brauche meine eigenen.) Ich kann Anfragen stellen, erhält, und eine Antwort. Aber nur einmal. Als Antwort bekomme ich nichts. Was ist seltsam, iv versucht, die Verbindung nach jeder Anfrage zu töten, um ein Reset zu erzwingen, aber es will einfach nichts damit zu tun haben.Java http Server wird nicht mehr als einmal empfangen

Chrome Dev Werkzeuge: Chrome Dev Tools

Während die Konsole zeigt:

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) 

Ich erwarte eine Anfrage für favicon.ico und nichts bekommen. Zweitens, wenn ich die Seite aktualisieren, bekomme ich eine andere Verbindung, die nur nichts anfordert. und Chrome-Berichte:

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

Heres die source.

Versuchte:

  • den Sockel Closing
  • Flushing Ausgabe
  • löschen das Objekt
  • schließen alle I/O nach 1 Anfrage.
  • Refactored, um SoTimeout zu verwenden, um die Verbindung mit einem Timeout zu schließen.

Keine Ahnung.

Antwort

-1

Problem war nicht mit HTTP-Server.

Nachdem ich es mit neuen Augen gesehen habe, lag das Problem in meinem Thread-Pool. Der Pool hat eine Anfrage verarbeitet und sich dann selbst geschlossen, wodurch es sich anscheinend um ein HTTP-Problem handelt.

RequestHelper.execute() 

Hat nicht so verhalten, wie man es erwarten würde, um es zu der Warteschlange hinzufügt, statt Sie eine Schleife, um Pop Runnable Objekte aus einer Liste Stapel zu müssen.

Verwandte Themen