Immer wieder wird bei Tests ein freier Port für das Starten eines Servers benötigt. Wird der Port dabei hart im Code hinterlegt, kann nicht davon ausgegangen werden, dass der Port nicht schon belegt ist. In diesem Fall laufen die Tests nicht durch. Das ist Schade, denn es ist kein fachliches Problem. Mit der folgenden kurzen Routine lässt sich in Java ein freier Port bestimmen, der im Folgenden für einen Test verwendet werden kann:
public static int getUnusedPort() throws Exception {
int port;
ServerSocket socket = null;
try {
socket = new ServerSocket(0);
port = socket.getLocalPort();
} finally {
if (socket != null) {
socket.close();
}
}
return port;
}
Geschrieben von sascha am 23. April 2009 19:20:07 CEST
