Socket com Tomcat

Galara,

Na minha aplicacao web preciso de ter um servidor de Sockets. Ja tentei o ServerSocket, ServerSocketFactory e quando eu rodo a minha aplicacao surge o seguinte erro:

19828 [ParserControlTrackScheduler_Worker-1] ERROR root  - Erro ParserStartjava.net.BindException: Address already in use: JVM_Bind
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
	at java.net.ServerSocket.bind(ServerSocket.java:319)
	at java.net.ServerSocket.<init>(ServerSocket.java:185)
	at java.net.ServerSocket.<init>(ServerSocket.java:97)
	at br.com.controltrack.timer.ParserStart.iniciarServicoSVias(ParserStart.java:54)
	at br.com.controltrack.timer.ParserStart.execute(ParserStart.java:35)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)

Ja mudei a porta de conexao e nao tive sucesso.

Alguem ja trabalhou com socket e tomcat? Infelizmente precso fazer isso com socket.

Atenciosamente

vcsmetallica

Use alguma ferramenta (como o netstat) para ver se a porta já está em uso por alguma outra aplicação. Por exemplo, no Windows é possível determinar qual é a aplicação “culpada” usando a opção “-b”. Por exemplo:

netstat -a -b

Procure por entradas que estão escritas “LISTENING”.

Se você estiver usando Linux, deve haver alguma ferramenta que faça isso por você. Pode ser o próprio netstat, mas não estou coma documentação aqui (man netstat) para lhe dizer quais são os comandos necessários.)

Atenção: isso pode levar algum tempo.

entanglement,

Ja fiz isso, a porta que eu estou usando nao esta sendo usada. Mudei a porta e nada.

Valeu pela ajuda.

vcsmetallica

Você está usando algum sistema operacional derivado do Unix, como o Linux, Solaris, AIX… ?

Nao. Estou usando ruindows mesmo. XP. E alguma coisa que o tomcat esta bloqueando. Pq no mesmo projeto eu criei uma classe de teste com o seguinte codigo e funcionou.

package br.com.controltrack.omni.teste;

import java.net.ServerSocket;
import org.apache.tomcat.util.net.ServerSocketFactory;

/**
 *
 */
public class TesteSocket {

    public static void main(String[] args) {
        try {
            ServerSocketFactory socketFactory = ServerSocketFactory.getDefault();
            ServerSocket s = socketFactory.createSocket(5000);
            System.out.println("Esas");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}