Osgi kura-无法远程卸载部署包(deploy-v2)

Osgi kura-无法远程卸载部署包(deploy-v2),osgi,mqtt,kura,Osgi,Mqtt,Kura,我是kura的新手,我一直在尝试使用Amit的MQTT远程卸载部署包,但我无法这样做。这是我从应用程序发送的请求有效负载- dp.name=hello\u osgi 作业id=12345891011L dp.version=1.0.0 我在响应主题中遇到以下错误- -- listing properties -- response.code=500 response.exception.message=java.lang.String cannot be cast to

我是kura的新手,我一直在尝试使用Amit的MQTT远程卸载部署包,但我无法这样做。这是我从应用程序发送的请求有效负载-

dp.name=hello\u osgi

作业id=12345891011L

dp.version=1.0.0

我在响应主题中遇到以下错误-

    -- listing properties --
    response.code=500
    response.exception.message=java.lang.String cannot be cast to java.lang.Long,
    response.exception.stack=java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long           
            at org.eclipse.kura.core.deployment.uninstall.DeploymentPackageUninstallOptions.
            <init>(DeploymentPackageUninstallOptions.java:38)     
            at org.eclipse.kura.core.deployment.CloudDeploymentHandlerV2.doExecUninstall(CloudDeploymentHandlerV2.java:594)                
            at org.eclipse.kura.core.deployment.CloudDeploymentHandlerV2.doExec(CloudDeploymentHandlerV2.java:343)                
            at org.eclipse.kura.cloud.MessageHandlerCallable.call(Cloudlet.java:270)            
            at org.eclipse.kura.cloud.MessageHandlerCallable.call(Cloudlet.java:1)
            at java.util.concurrent.FutureTask.run(FutureTask.java:266)      
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)               
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)               
            at java.lang.Thread.run(Thread.java:745) ,
            response.code=500

         Malformed uninstall request
是否有其他方法发送请求有效负载?

快速查看会发现您将
job.id
作为字符串发送,而不是长的

而不是

String reqId = "12345891011L";
payload.addMetric("job.id", reqId);
代码应该可以

long reqId = 12345891011L;
payload.addMetric("job.id", reqId);
或者更好的方法是,使用已经实现了正确类型的所有方法的


我不知道Amit的MQTT实用程序,但我认为您可以通过某种方式设置变量的类型(或者更改他的应用程序以设置正确的类型,然后发送拉取请求)。

我发现
job.id
需要很长,而kura将其作为字符串获取,因此出现了错误。我的目标是使web应用程序能够通过MQTT消息远程安装、卸载、启动和停止捆绑包,如图所示。我不知道我是否可以在web应用程序中使用Kura API,我认为我不能,所以我应该如何发送这些度量?检查MQTT实用程序如何发送数据包,并执行相同的操作。上次我检查(大约1年前)KuraPayload基本上是一个使用Protobuf库序列化的地图。
long reqId = 12345891011L;
payload.addMetric("job.id", reqId);