Я думаю, причина в том, что самая последняя строка функции -
server.join();
Эта функция возвращается только после завершения потока server
. Кажется, что это не то, что вы хотите, так как похоже, что вы хотите, чтобы он работал в фоновом режиме. Избавление от этой строки должно исправить это.
Кроме того, вы, вероятно, не должны бросать Exception
из startFileHTTP
. Это делает менее понятным, какие исключения могут быть сгенерированы, и уменьшает количество информации, предоставляемой вызывающими сторонами о том, какие ошибки они могут ожидать.