Hazelcast Server和Hazelcast Client之间的传播错误

问题描述 投票:1回答:1

我有以下情况:-作为微服务的Hazelcast Server,当接收到方法调用时执行一些计算。-作为另一个微服务的Hazelcast客户端,它通过指定的方法调用来调用Hazelcast服务器。

[我希望从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
1个回答
0
投票

从3.12.x开始,不支持将自定义异常工厂注册为API。要关注的相关问题https://github.com/hazelcast/hazelcast/issues/9753解决方法是,我建议使用类名(UndefinedErrorCodeException.getOriginialClassName())在客户端上重新创建异常类。

© www.soinside.com 2019 - 2024. All rights reserved.