Hoje tive um problema quando fui rodar um projeto Java Web pelo JBuilder que foi o seguinte:
StandardServer.await: create[8081]: java.net.BindException: Address already in use: JVM_Bind java.net.BindException: Address already in use: JVM_Bind
O que tudo indica é que o Java Virtual Machine não conseguiu rodar pois a porta 8081 já estava em uso. Eis que me surge a curiosidade de tentar descobrir qual programa estava usando tal porta.
Já sabia o primeiro passo: ver se realmente a porta estava em uso com o comando ‘netstat -na’.
Ao ver que a porta estava realmente em uso, procurei alguma forma de tentar libera-la, mas sem sucesso. Então procurei saber se algum processo estava usando-a com o comando: ‘netstat -abnovp tcp’ (demora um pouco pra carregar toda a lista). Então consegui saber qual era o processo usado por aquela porta, daí peguei seu PID (ultima coluna) e matei o tal processo ‘taskkill /pid XXX’ (XXX vc substitui pelo nº do PID). Pronto, resolvido o problema!
Uma outra solução encontrada posteriormente foi mudar a porta em que o serviço jsp/servlet fosse rodado. O padrão é usar a porta 8080, e ele ‘guarda’ as portas 8081 e 8082 para rodar serviços extras caso haja necessidade, e no meu caso ele usa a 8081 para rodar o JVM. Para mudar tal porta, basta abrir o projeto e seguir os passos:
Run > Configurations > Edit.
Na tela que abrir tem ‘Services’ > ‘JSP/Servlet’, ao seleciona-lo aparece a direta ‘Port number’, é so altera-la para 8083.
Créditos ao Ulisses Castro, que graças ao que achei em seu blog eu consegui resolver o problema através da primeira solução.
Link para o Blog.
Feed RSS dos comentários deste post URL de TrackBack
3 de fevereiro de 2009 as 15:54
Que bom que a relação de comandos serviu para algo que não seja pentest!
Belo blog… added!
[s]