Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Troquei a porta do server.xml pra 80 e agora ele da erro

Eu fiz conforme a aula porem quando eu troquei para 80 ele me deu o seguinte erro: HTTP Error 404. The requested resource is not found.

ja tentei trocar pra pasta raiz do computador mas o erro continua, segue o codigo que eu alterei

 <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

E ao analisar o console do servidor me apareceu o seguinte erro

 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[HTTP/1.1-80]]
        org.apache.catalina.LifecycleException: Protocol handler initialization failed
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1049)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardService.initInternal(StandardService.java:558)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1045)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:724)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:746)
                at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.base/java.lang.reflect.Method.invoke(Method.java:564)
                at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
        Caused by: java.net.BindException: Address already in use: bind
                at java.base/sun.nio.ch.Net.bind0(Native Method)
                at java.base/sun.nio.ch.Net.bind(Net.java:479)
                at java.base/sun.nio.ch.Net.bind(Net.java:468)
                at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:220)
                at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:277)
                at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:241)
                at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1193)
                at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1206)
                at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:597)
                at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80)
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1046)
                ... 13 more
2 respostas
solução!

Oie João, tudo bem com você?

O erro "java.net.BindException: Address already in use: bind" acontece quando você já tem um processo usando a porta 80, para resolver isso você irá precisar parar esse processo e ai rodar o servidor.

Caso você desconheça qual processo seja esse, segue o seguinte caminho:

  1. Abra o "promt de comando" e digite:
    netstat -ano
  2. Irá aparecer uma lista com todos os protocolos, portas e processos, procure o endereço 0.0.0.0:80, estará na coluna "Endereço Local". Na coluna PID, copie o numero que estiver na mesma linha desse endereço.

prompt de comando

  1. Para excluirmos esse processo escreva:
 taskkill -pid "numero do PID" /f

Caso tenha aparecido uma mensagem falando que não conseguiu excluir o processo, você precisará baixar o programa TCPView da Microsoft, se houver dado certo é só rodar o TomCat e provavelmente irá funcionar.

Segue tutorial para excluir processos com esse programa:

  1. Extraia o arquivo compactado e clique 2x no arquivo Tcpview.exe.

  2. Assim que abrir, irá aparecer uma lista de processos e portas da mesma forma que no terminal, nessa lista ao invés de procurar pelo ip 0.0.0.0:80 procure pelo PID dele (aquele numero que você copiou no prompt).

    lista de portas

  3. Assim que encontrar, clique com o botão direito do mouse em cima do processo e selecione a opção "end process" e pronto, processo excluído. excluindo processo

  4. Agora só rodar o TomCat novamente!

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!

Boa tarde descobri o problema apesar de vc fechar o sistema ele ainda continua rodando então para liberar a porta eu tenho que realmente clicar no botão de Terminate do eclipse, obrigado pela atenção e pela ajuda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software