Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Levantando exceção pela 2ª vez executando a classe Servidor

Por que toda a vez que eu tento rodar a classe Servidor pela segunda vez, a exceção abaixo é levantada? Se eu fechar o Eclipse e abrir de novo, funciona normal.

Exception in thread "main" javax.ws.rs.ProcessingException: IOException thrown when trying to start grizzly server
    at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:276)
    at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:110)
    at br.com.alura.loja.Servidor.main(Servidor.java:19)
Caused by: java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bindToChannelAndAddress(TCPNIOBindingHandler.java:131)
    at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bind(TCPNIOBindingHandler.java:87)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:449)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:429)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:420)
    at org.glassfish.grizzly.http.server.NetworkListener.start(NetworkListener.java:658)
    at org.glassfish.grizzly.http.server.HttpServer.start(HttpServer.java:264)
    at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:274)
    ... 2 more
1 resposta
solução!

Oi ADRIANA

Na primeira vez que você sobe sua aplicação, o processo vinculado começa a utilizar a porta. Se você tentar subir novamente sua aplicação sem parar a execução anterior, a porta continuará alocada pelo processo antigo e a execução nova não conseguirá utilizar a porta, pois já tem outro processo usando.