openvidu-server: capture spring initialization error and better inform of port issues

v2
pabloFuente 2025-11-14 13:00:13 +01:00
parent 9bbe7787c7
commit 9b575bf778
2 changed files with 33 additions and 20 deletions

View File

@ -302,8 +302,21 @@ public class OpenViduServer implements JsonRpcConfigurer {
argsAux[argsAux.length - 2] = "--spring.main.banner-mode=off"; argsAux[argsAux.length - 2] = "--spring.main.banner-mode=off";
argsAux[argsAux.length - 1] = "--spring.main.allow-circular-references=true"; argsAux[argsAux.length - 1] = "--spring.main.allow-circular-references=true";
SpringApplication.run(OpenViduServer.class, argsAux); try {
SpringApplication.run(OpenViduServer.class, argsAux);
} catch (org.springframework.context.ApplicationContextException e) {
Throwable rootCause = e;
while (rootCause.getCause() != null) {
rootCause = rootCause.getCause();
}
if (rootCause instanceof java.net.BindException) {
log.error("Cannot start OpenVidu Server on port {}: {}."
+ " You can modify the port used by OpenVidu Server with the 'HTTPS_PORT' configuration property.",
System.getProperty("server.port"), rootCause.getMessage());
} else {
throw e;
}
}
} }
public static <T> Map<String, String> checkConfigProperties(Class<T> configClass) throws InterruptedException { public static <T> Map<String, String> checkConfigProperties(Class<T> configClass) throws InterruptedException {

View File

@ -429,23 +429,23 @@ public class OpenviduConfig {
public Set<OpenViduRole> getRolesFromRecordingNotification() { public Set<OpenViduRole> getRolesFromRecordingNotification() {
Set<OpenViduRole> roles = new HashSet<>(); Set<OpenViduRole> roles = new HashSet<>();
switch (this.openviduRecordingNotification) { switch (this.openviduRecordingNotification) {
case none: case none:
break; break;
case moderator: case moderator:
roles.add(OpenViduRole.MODERATOR); roles.add(OpenViduRole.MODERATOR);
break; break;
case publisher_moderator: case publisher_moderator:
roles.add(OpenViduRole.PUBLISHER); roles.add(OpenViduRole.PUBLISHER);
roles.add(OpenViduRole.MODERATOR); roles.add(OpenViduRole.MODERATOR);
break; break;
case all: case all:
roles.add(OpenViduRole.SUBSCRIBER); roles.add(OpenViduRole.SUBSCRIBER);
roles.add(OpenViduRole.PUBLISHER); roles.add(OpenViduRole.PUBLISHER);
roles.add(OpenViduRole.MODERATOR); roles.add(OpenViduRole.MODERATOR);
break; break;
default: default:
roles.add(OpenViduRole.PUBLISHER); roles.add(OpenViduRole.PUBLISHER);
roles.add(OpenViduRole.MODERATOR); roles.add(OpenViduRole.MODERATOR);
} }
return roles; return roles;
} }
@ -677,7 +677,7 @@ public class OpenviduConfig {
try { try {
URI finalUri = new URI(this.getFinalUrl()); URI finalUri = new URI(this.getFinalUrl());
this.coturnIp = finalUri.getHost(); this.coturnIp = finalUri.getHost();
} catch (URISyntaxException e) { } catch (Exception e) {
log.error("Can't get Domain name from OpenVidu public Url: " + e.getMessage()); log.error("Can't get Domain name from OpenVidu public Url: " + e.getMessage());
} }
} }