当前位置: 首页 > 知识库问答 >
问题:

Apache Ignite:启用Peer Class加载不会自动部署StoreAdapter和Pojo类

赵辉
2023-03-14

我正在使用Apache Ignite 2.10.0,我希望通过读/写功能将数据加载/写入第三方持久性的缓存中,为了做到这一点,我实现了扩展CacheStoreAdapter类的个性化存储。我希望我的类(个性化存储、pojo和其他)从客户端节点远程自动部署到Ignite服务器节点,为此我在CacheConfiguration中启用了peerClassLoding,在启动服务器上我看到了

java.lang.RuntimeException: Failed to create an instance of com.demoIgnite.adapter.PersonStore
        at javax.cache.configuration.FactoryBuilder$ClassFactory.create(FactoryBuilder.java:134)
        .....
        at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
        at java.lang.Thread.run(Thread.java:745) 
Caused by:java.lang.ClassNotFoundException: com.demoIgnite.adapter.PersonStore
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at javax.cache.configuration.FactoryBuilder$ClassFactory.create(FactoryBuilder.java:130)

然而,如果我手动尝试将jar放在ignite libs上,它的效果绝对不错。但通过这种方法,每次出现我想要避免的代码修改时,我都必须重建、更换和重新启动Ignite服务器。我是Apache Ignite的新手,在阅读Ignite文档后,我假设如果启用了peerClassLoading,这可以自动完成,如果我缺少一些东西,请帮助我。另外,请建议我一种自动化的方法。

我的缓存配置:

缓存配置

点火配置:

IgniteConfiguration cfg=new IgniteConfiguration();cfg.setIgniteInstanceName("my-ignite");
cfg.setClientMode(true);cfg.setPeerClassLoadingEnable(true);cfg.setDeploymentMode(DeploymentMode. CONTINUOUS);cfg.setCacheConfiguration(cacheCfg); TcpDiscoveryMulticastIpFinder ipFinder=new TcpDiscoveryMulticastIpFinder(); ipFinder.set地址(Collections.singletonList("127.0.0.1:10800"));cfg.setDiscoverySpi(new TcpDiscoverySpi(). setIpFinder(ipFinder));

共有1个答案

师成弘
2023-03-14

无法对等加载缓存存储和POJO类。

对等加载主要用于计算可调用项、服务(基于事件的模式)、一些侦听器等。

 类似资料:
  • 我有自己的小MVC框架,我使用composer psr-4自动加载。 在我自己的计算机上,它工作得非常好,但当我将它部署到我的Ubuntu服务器上时,它就不再工作了。(它再也找不到任何类了)我已经尝试了很多东西,但无论我尝试什么,它都不起作用。。。 我所尝试过的: 作曲家转储自动加载 作曲家更新 删除所有内容并再次上载 在互联网上搜索几个小时…:( 这是我的composer.json: 我只是不明

  • 利用自动化加速软件在不同环境间的迁移 自动化构建不仅仅适用于开发团队 —— 在将软件从开发迁移到生产这一过程中也大有作为。在这一期 让开发自动化中,自动化专家 Paul Duvall 将介绍如何结合使用 Ant 和 Java™Secure Channel 将软件远程部署到多个目标环境中。 关于本系列 作为开发人员,我们的工作就是为终端用户实现过程自动化;然而,很多开发人员却忽略了将自己的开发过程自

  • 第一次将WAR放在< code > domains/domain 1/auto deploy 目录下时,我就可以部署它了。但是,在进行了一些更改并将WAR重新部署到< code>autodeploy目录后,这些更改并没有生效。我甚至删除了< code > domains/domain 1/applications/myapp (其中< code>myapp对应于正在部署的< code>myapp.

  • 我使用创建-反应-应用程序来构建一个简单的反应应用程序,但是,当我将项目部署到github页面时,图像不会加载,但是当我使用命令提示符部署应用程序时,它们加载得很好。 我在所有图像中都遇到此错误: 加载资源失败:服务器响应状态为404() 任何帮助都将不胜感激。非常感谢。

  • 我正在用Hubot框架开发一个应用程序,使用Heroku。我在Heroku上设置了一些配置变量,当我部署代码时,我的引用可以正常工作。

  • (hawtio版本1.4.27,karaf版本3.0.2) 我不太确定我在这里错过了什么。我运行了以下控制台命令来将hawtio功能部署到Karaf 正如这里所建议的,我只安装hawtio核心功能。 然而,war捆绑包207(hawtio web)永远处于“部署”web状态。我也没有看到安装任何servlet 根据log:display(根日志记录器在INFO上运行并记录到osgi:*)这些是记录