【发布时间】:2019-11-11 09:17:53
【问题描述】:
我有以下情况: - Hazelcast 服务器作为微服务,在收到方法调用时执行一些计算。 - Hazelcast Client 作为另一个微服务,通过指定的方法调用调用 Hazelcast Server。
我希望当我从 Hazelcast 服务器抛出异常时在 Hazelcast 客户端接收它(目前,我收到这样的东西: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)。
谢谢!
【问题讨论】:
标签: spring spring-boot hazelcast