У меня довольно неприятная проблема в моем серверном приложении.Apache Mina Server Restart java.net.BindException: адрес уже используется
Я связываю Apache Mina со следующим кодом:
acceptor.bind(new InetSocketAddress(PORT));
Где акцептором является NioSocketAcceptor. Через интерфейс HTTP я могу завершить работу сервера, чтобы перезапустить его.
Server.ioAcceptor.unbind(new InetSocketAddress(Server.PORT));
for(IoSession session: Server.ioAcceptor.getManagedSessions().values()){
if(session.isConnected() && !session.isClosing()){
session.close(false);
}
}
Server.ioAcceptor.dispose();
Main.transport.stop();
Logger.getRootLogger().warn("System going down. Request from "+context.getRemoteAddress());
System.exit(10);
Это код, который я использую для остановки сервера Mina. Однако, если я попытаюсь запустить сервер снова в ближайшие пару минут. (Где-то между 5 и 15 минутами) При запуске я получаю следующее исключение: java.net.BindException: Адрес уже используется
Я также попробовал простой ioAcceptor.unbind(), но не было никакой разницы. Сервер работает на Centos 5 с OpenJDK. Версия Apache Mina 2.0 RC1.
Заранее благодарю вас за любые идеи о том, как решить эту проблему.
Оба они не показывают ничего. «lsof -i» также не показывает соединений на этом порту – Kosaki
@ Kosaki: PS. Извините, я должен был сделать это комментарий, а не ответ .. –