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();
}
}
}