VMware {code} Community
singhharpreet
Contributor
Contributor

Creating Virtual machine, with SOAP fault error, create filter

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?

0 Kudos
0 Replies