Java serverSocket выполняет запрос дважды - PullRequest
0 голосов
/ 04 ноября 2019

Я пытался реализовать многопоточный API-интерфейс отдыха в Java. Проблема в том, что все запросы выполняются дважды. Я использую почтальона, чтобы отправить запрос GET. InputStream будет нулевым для первого, будет работать только второй.

Я предполагаю, что что-то пропустил.

Поместил несколько System.out.println, чтобы увидеть, что на самом делевыполнено дважды. Как вы можете видеть: «Accepted Connection from» регистрируется дважды для одного запроса.

Я просто не могу обернуть голову вокруг этого.

public void listen() {
    try {
        this.serverSocket = new ServerSocket(this.port);
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println("Listening to Port " + this.port);

    while(!this.isStopped) {
        Socket clientSocket = null;
        try {
            clientSocket = this.serverSocket.accept();
            System.out.println("Accepted Connection from " + clientSocket.getRemoteSocketAddress() + " -- Handling Request");
            RequestHandlerThread r = new RequestHandlerThread(clientSocket, this.dev, this.prd);
            this.threadPool.execute(r);
        } catch (IOException ex) {
           System.out.println(ex.getMessage());
        }
    }


    try {
        this.serverSocket.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    this.threadPool.shutdown();
}

Я ожидал «Accepted Connection from"быть зарегистрировано только один раз. Я хочу записать в базу данных в будущем, поэтому она должна записываться только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...