У меня есть следующий сценарий: - Hazelcast Server в качестве микросервиса, который выполняет некоторые вычисления при получении вызова метода. - Hazelcast Client как другой микросервис, который вызывает Hazelcast Server с помощью указанного вызова метода.
Я хочу, чтобы, когда я выбрасываю исключение с Hazelcast Server, он получал его на стороне Hazelcast Client как есть (в настоящее время,Я получаю что-то вроде этого: java.util.concurrent.ExecutionException: com.hazelcast.client.UndefinedErrorCodeException: Class name: ro.orange.eshop.personalisationengineapi.application.exception.ValidationException
)
Я немного покопался в API и на стороне клиента Hazelcast нашел способ зарегистрировать новое исключение:
@Bean
fun addHazelcastKnownExceptions(hazelcastInstance: HazelcastInstance): Int {
val hazelcastClientInstance = (hazelcastInstance as HazelcastClientProxy).client
hazelcastClientInstance.clientExceptionFactory.register(400, ValidationException::class.java) { message, cause -> ValidationException(message, cause) }
return 1
}
Но, похоже, это исключение должно быть зарегистрировано и на стороне сервера. И тут возникает проблема! На стороне сервера я нашел класс с именем ClientExceptions
, у которого есть метод public void register(int errorCode, Class clazz)
, но я не могу найти способ получить экземпляр ClientExceptions
(Я должен отметить, что я использую Hazelcast Spring).
Спасибо!