Мы создали набор тестов и для его запуска используем встроенный веб-сервер Grizzly с инфраструктурой JerseyTest.
Мы расширяем пользовательский класс из JerseyTest, и в его конструкторе мы создаем ApplicationDescriptor, а затем вызываем суперкласс setupTestEnvironment (), который по существу запускает встроенный веб-сервер гризли.
Лишь немногие из наших тестовых примеров расширяют этот пользовательский класс для непосредственного запуска сервера гризли. Однако мы нигде не останавливаем этот встроенный сервер в коде.
Тестовые случаи хорошо работают в Windows, но в Unix они терпят неудачу с java.net.BindException порт 9998 используется другим процессом.
Становится очевидным, что эти тесты должны проваливаться с похожей ошибкой на окнах, если мы не останавливаем встроенный веб-сервер в коде. Как они работают нормально на Windows и не работают на Unix. Это как-то связано с тем, как Unix порождает потоки или процессы?
P.S. Мы также проверили, используется ли порт 9998 каким-либо другим процессом с помощью netstat -a | grep 9998, но не удалось найти другой процесс, использующий этот порт.