以编程方式将jar部署到gemfire定位器

以编程方式将jar部署到gemfire定位器,jar,gemfire,Jar,Gemfire,有没有办法通过编程方式将jar部署到远程缓存服务器?我宁愿避免使用本地GemFire安装,而只是使用gfsh进行部署。看看启动脚本,例如远程安装中的$GemFire\u HOME/bin/'GemFire'。看起来您可以将JAR复制到每个缓存服务器都可以访问的位置,并将CLASSPATH环境变量设置为包含JAR。话虽如此,只使用gfsh可能更容易、更可靠,特别是当您有多个缓存服务器时 如果要避免在本地安装gfsh,可以使用REST协议与定位器对话 gfsh可配置为与定位器通话。为此,您必须使用g

有没有办法通过编程方式将jar部署到远程缓存服务器?我宁愿避免使用本地GemFire安装,而只是使用
gfsh
进行部署。

看看启动脚本,例如远程安装中的$GemFire\u HOME/bin/'GemFire'。看起来您可以将JAR复制到每个缓存服务器都可以访问的位置,并将CLASSPATH环境变量设置为包含JAR。话虽如此,只使用gfsh可能更容易、更可靠,特别是当您有多个缓存服务器时

如果要避免在本地安装
gfsh
,可以使用REST协议与定位器对话

gfsh
可配置为与定位器通话。为此,您必须使用gemfire属性
http服务端口:8080
启动定位器,然后在从
gfsh
连接定位器时使用:

gfsh>connect --use-http
现在,您可以将jar卷曲到定位器(定位器随后将其发送到所有服务器),而不是gfsh


由于端点可能会发生变化,因此通常会注意到这一点。

您可以在github上找到所有GemFire/Geode源代码:

为GFSH部署JAR涉及的类有:

  • com.gemstone.gemfire.management.internal.cli.commands.DeployCommands
  • com.gemstone.gemfire.management.internal.cli.functions.DeployFunction
  • com.gemstone.gemfire.management.internal.cli.functions.UndeployFunction
  • com.gemstone.gemfire.management.internal.cli.functions.ListDeployedFunction
上述功能使用以下功能执行实际工作:

  • com.gemstone.gemfire.internal.JarDeployer
  • com.gemstone.gemfire.internal.JarClassLoader
因此,理论上可以使用JarDeployer和JarClassLoader编写一些代码。它们是内部类,因此a)不是正式的用户/开发人员API,b)可能会更改或删除

curl --fail -s -Fresources=@/path/to/your.jar http://locatorhost:port/gemfire/v1/deployed