我有一个使用 Jcache 的 hazelcast 成员。我正在为 Jcache 使用 CacheLoader 和 CacheWriter。
在另一个集群成员上,我收到一个异常,即无法加载其中一个 Jcache CacheLoader 类。缓存加载器被定义为一个内部私有静态类。
下面是我的用户代码部署配置在两个成员上的样子。
<user-code-deployment enabled="true">
<class-cache-mode>ETERNAL</class-cache-mode>
<provider-mode>LOCAL_CLASSES_ONLY</provider-mode>
</user-code-deployment>
我得到的例外是:
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: Failed to load class app.cache.HzAuthCacheManagerImpl$DefaultCacheLoader from other members.
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:83)
at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$JavaSerializer.read(JavaDefaultSerializers.java:72)
Caused by: java.lang.ClassNotFoundException: Failed to load class app.cache.HzAuthCacheManagerImpl$DefaultCacheLoader from other members.
at com.hazelcast.internal.usercodedeployment.impl.ClassLocator.tryToGetClassFromRemote(ClassLocator.java:157)
at com.hazelcast.internal.usercodedeployment.impl.ClassLocator.handleClassNotFoundException(ClassLocator.java:95)
at com.hazelcast.internal.usercodedeployment.UserCodeDeploymentService.handleClassNotFoundException(UserCodeDeploymentService.java:89)
对于定义了 HzAuthCacheManagerImpl 的成员,我没有得到任何异常。
我的配置有什么问题,还是需要其他东西才能让用户代码部署与 JCache 一起工作?