Я пытался реализовать многопоточный 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"быть зарегистрировано только один раз. Я хочу записать в базу данных в будущем, поэтому она должна записываться только один раз.