Conexão recusada para o Java HTTP Server em execução no host local

1

Como você investigaria o seguinte problema?

Em um servidor específico; qualquer solicitação HTTP enviada para um servidor Java em execução no host local falha com "Conexão recusada". ( Veja o código Java aqui )

No Java Server-Application, nenhum sinal de problemas está visível. A porta parece estar escutando, mas quando tento enviar uma solicitação HTTP com cURL para o aplicativo Java HTTP-Server; Registros cURL "Conexão recusada". (Eu uso o curl em mingw no sistema Windows 10)

O aplicativo Java Server iniciado:

C:\test>java LogTCP_S 8000

Listening on port:8000, type Crtl-C to finish

O comando curl [NOK]:

$ curl localhost:8000
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0

 curl: (7) Failed to connect to localhost port 8000: Connection refused

O mesmo código Java funciona como esperado na minha estação de trabalho.

Eu também tentei um aplicativo Java diferente. Eu obtive o mesmo resultado usando o código da seguinte resposta do StackOverflow: servidor HTTP simples em Java usando apenas a API Java SE

O problema ocorre em um sistema Windows 10. Existem várias ferramentas de detecção de anomalias e aplicativos de firewall e estamos tendo dificuldades para identificar a origem do problema.

Dica: netstat -a não listará a porta 8000. Mas deve ser mostrado como LISTENING.

Dica: Ao iniciar um servidor no PowerShell ( conforme descrito aqui ), a comunicação funciona como esperado. A porta do Servidor do PowerShell será listada na saída netstat -a e as solicitações retornarão o HTTP 200 e o conteúdo esperado.

Você poderia me dar uma dica, como depurar, investigar ou resolver esse problema? Quais ferramentas poderiam ser úteis ao investigar tais questões?

Qualquer ajuda seria muito apreciada.

Muito obrigado.

Versão Java:

C:\>java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

Saída do servidor do PowerShell:

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.


PS C:\Temp\_test\PowerShell> .\server.ps1
[PowerShell] Listening at http://localhost:8000/... (port 8000)

> http://localhost:8000/ola
< 200

saída de curvatura, quando o PowerShell está sendo executado [OK]:

$ curl localhost:8000/ola
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    38  100    38    0     0    612      0 --:--:-- --:--:-- --:--:--   612

<html><body>Hello world!</body></html>
    
por Attila 19.10.2018 / 09:53

1 resposta

0

Depois de executar os seguintes passos; a questão não era mais reproduzível:

  • Interrompido o serviço do Symantec Anti-Virus
  • Reinstalado o Java JDK 8 u 171

Após reiniciar o Serviço antivírus da Symantec; a questão ainda não é reproduzível e o problema parece estar resolvido.

Agora, as portas abertas por aplicativos Java aparecem na saída de "netstat -a" e também respondem conforme o esperado. As solicitações HTTP enviadas para o aplicativo Java estão chegando agora na JVM e as respostas podem ser enviadas.

Ainda não está completamente claro o que causou o problema.

    
por 23.10.2018 / 11:55