Я переписываю исключения из старой системы, и все работало, но мне нужно было сделать BAD_REQUEST
настраиваемым.
private static final String BAD_REQUEST = "BDRQ";
Пытался просто поставить ConfigProperty, но не работает.
import javax.ws.rs.core.Response.Status;
import org.eclipse.microprofile.config.inject.ConfigProperty;
public class SXClientException extends RuntimeException {
@ConfigProperty(name = "greeting.error", defaultValue = "BDRQ")
public String BAD_REQUEST;
private final RuntimeException runtimeException;
public SXClientException(RuntimeException e) {
super(e);
this.runtimeException = e;
}
public Status getStatus() {
if (BAD_REQUEST.equals(runtimeException.getMessage())) {
return Status.BAD_REQUEST;
}
return Status.INTERNAL_SERVER_ERROR;
}
// ...
}
Вероятно, это не сработает, так как я делаю их без CDI.
catch (LegacyOMException e) {
throw new SXClientException(e);
}
Я бы предпочел избежать создания другого bean-компонента (и передачи значения) только для сравнения одной String. Любая идея, как я могу прочитать значение конфигурации для статического значения?