Cloudlet迁移的CloudReports(Cloudsim扩展)提供错误Null Exception

时间:2018-03-19 13:00:49

标签: nullpointerexception migration cloudsim

我是Cloudsim和CloudReports Extension的新手,所以我不知道为什么 运行CloudReports模拟器时,会出现此错误:

org.cloudbus.cloudsim.power.powerdatacenter.processcloudletsubmit(powerdatacenter.java:269)

nullpointerexception

我在扩展中添加了一个cloudlet调度算法 我只能看到cloudlets Migration发生错误。 我尝试了很多关于如何修复它但没找到能帮助我的东西。

错误是这样的:

显示java.lang.NullPointerException     在org.cloudbus.cloudsim.Datacenter.processCloudletSubmit(Datacenter.java:761)     在org.cloudbus.cloudsim.power.PowerDatacenter.processCloudletSubmit(PowerDatacenter.java:269)     在org.cloudbus.cloudsim.Datacenter.processEvent(Datacenter.java:159)     在org.cloudbus.cloudsim.core.SimEntity.run(SimEntity.java:406)     在org.cloudbus.cloudsim.core.CloudSim.runClockTick(CloudSim.java:471)     在org.cloudbus.cloudsim.core.CloudSim.run(CloudSim.java:835)     在org.cloudbus.cloudsim.core.CloudSim.startSimulation(CloudSim.java:151)     在cloudreports.simulation.Simulation.runSimulation(Simulation.java:157)     在cloudreports.simulation.Simulation.runAllSimulations(Simulation.java:129)     在cloudreports.simulation.Simulation.run(Simulation.java:98)     在java.lang.Thread.run(Thread.java:748)

plz Advise; 问候。

1 个答案:

答案 0 :(得分:0)

当我遵循CloudSim项目中提供的模拟示例时遇到了相同的问题。调试后发现问题出在设置创建的cloudlet的UserID上。我在模拟中使用userId检索cloudlet时将随机值设置为brokerId。因此,将userId与创建的brokerId一起设置对我来说很成功。

// dataCenterBroker is the instance of the broker which you created
int brokerId = dataCenterBroker.getId(); 

//setting the userId after creating the cloudlet
cloudLet.setUserId(brokerId)