Hi
I have used VMCreate provided in SDK-samples. It successfully creates Virtual Machine but with errors.
Issue:
Though, it creates VM but Web service client receives following exception in response, even after successful creation:
InvalidRequestFault
Message:
Attribute xsi:nil not allowed on element selectSet, which is not nillable.
while parsing property "skip" of static type boolean
while parsing serialized DataObject of type vmodl.query.PropertyCollector.ObjectSpec
at line 1, column 274
while parsing property "objectSet" of static type ArrayOfObjectSpec
while parsing serialized DataObject of type vmodl.query.PropertyCollector.FilterSpec
at line 1, column 174
while parsing call information for method CreateFilter
at line 1, column 81
while parsing SOAP body
at line 1, column 70
while parsing SOAP envelope
at line 1, column 0
while parsing HTTP request for method createFilter
on object of type vmodl.query.PropertyCollector
at line 1, column 0
Findings:
Till now i am unable to find solution for the same. Still i could find that the exception is thrown while executing CreateFilter, after creating virtual machine:
Method 1:
ManagedObjectReference taskmor = vimPort.createVMTask(vmFolderMor, vmConfigSpec, resourcepoolmor, hostmor);
String[] opts = new String[]{"info.state", "info.error"};
String[] opt = new String[]{"state"};
Object[] result = waitForValues(taskmor, opts, opt,new Object[][]{new Object[]{TaskInfoState.SUCCESS, TaskInfoState.ERROR}});
Method 2:
private static Object[] waitForValues(ManagedObjectReference objmor, String[] filterProps,String[] endWaitProps,Object[][] expectedVals)
throws RemoteException, Exception
{
String version = "";
Object[] endVals = new Object[endWaitProps.length];
Object[] filterVals = new Object[filterProps.length];
PropertyFilterSpec spec = new PropertyFilterSpec();
spec.getObjectSet().add(new ObjectSpec());
spec.getObjectSet().get(0).setObj(objmor);
spec.getPropSet().addAll(Arrays.asList(new PropertySpec[]{new PropertySpec()}));
spec.getPropSet().get(0).getPathSet().addAll(Arrays.asList(filterProps));
spec.getPropSet().get(0).setType(objmor.getType());
spec.getObjectSet().get(0).getSelectSet().add(null);
spec.getObjectSet().get(0).setSkip(Boolean.FALSE);
ManagedObjectReference filterSpecRef = vimPort.createFilter(propCollectorRef, spec, true);
Could anyone please help me in providing reason and solution for the same, as i am unable to track it online?