VMware {code} Community
dhbtemp
Contributor
Contributor

Registeration of web client plugin(flex-client-sdk) fails on 6.5 RC with "VKS KeyStore not available" error

Hi,
I was just trying to develop our html bridge plugin on  6.5 RC, I was following the steps(and I had already checked all the steps) from:

vsphere-client-sdk\flex-client-sdk\docs\SDK-Setup.html

I completed the setup steps and did the vCenter Server registration. But when I  try to use https://localhost:9443/vsphere-client/ to login vSphere web client, it fails to connect to vCenter Server.


I See some errors in vsphere-client-sdk\flex-client-sdk\vsphere-client\server\serviceability\logs\vsphere_client_virgo.log file :

 

[2016-09-12T12:21:00.184+08:00] [ERROR] usage-data-collector-thread   c.v.p.c.a.solutionuser.SolutionUserAuthenticationConfig           Failed to load system wide VECS keystore. This will result in inability for CEIP to collect data and synchronize its consent state accross other VCs. Please file a SR for issue with the Customer Experience Improvement Program (CEIP) For details see the underlying error: java.security.KeyStoreException: VKS not found java.security.KeyStoreException: VKS not found
    at java.security.KeyStore.getInstance(KeyStore.java:616)
    at com.vmware.ph.ceip.authentication.keystore.VecsKeyStoreProvider$KeyStoreInstantiator.getInstance(VecsKeyStoreProvider.java:63)
    at com.vmware.ph.ceip.authentication.keystore.VecsKeyStoreProvider.loadKeyStore(VecsKeyStoreProvider.java:29)
    at com.vmware.ph.ceip.authentication.solutionuser.SolutionUserAuthenticationConfig.doInitializeConfiguration(SolutionUserAuthenticationConfig.java:112)
    at com.vmware.ph.ceip.authentication.solutionuser.SolutionUserAuthenticationConfig.initializeOnce(SolutionUserAuthenticationConfig.java:101)
    at com.vmware.ph.ceip.authentication.solutionuser.SolutionUserAuthenticationConfig.getSolutionKey(SolutionUserAuthenticationConfig.java:90)
    at com.vmware.ph.ceip.authentication.DsSessionSimulatorImpl$TokenProvider.createSolutionStsClient(DsSessionSimulatorImpl.java:274)
    at com.vmware.ph.ceip.authentication.DsSessionSimulatorImpl$TokenProvider.createToken(DsSessionSimulatorImpl.java:243)
    at com.vmware.ph.ceip.authentication.DsSessionSimulatorImpl.simulate(DsSessionSimulatorImpl.java:117)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
    at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
    at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at com.sun.proxy.$Proxy427.simulate(Unknown Source)
    at com.vmware.vsphere.telemetry.cmc.CollectorAction.call(CollectorAction.java:95)
    at com.vmware.vsphere.telemetry.cmc.CollectorAction.call(CollectorAction.java:43)
    at com.vmware.vsphere.telemetry.cmc.CollectorLoop.runLoop(CollectorLoop.java:95)
    at com.vmware.vsphere.telemetry.cmc.CollectorLoop.access$100(CollectorLoop.java:21)
    at com.vmware.vsphere.telemetry.cmc.CollectorLoop$1.run(CollectorLoop.java:73)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.security.NoSuchAlgorithmException: VKS KeyStore not available
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
    at java.security.Security.getImpl(Security.java:695)

    at java.security.KeyStore.getInstance(KeyStore.java:613)
    ... 32 common frames omitted

My VMWARE_CFG_DIR is set to C:/ProgramData/VMware/vCenterServer/cfg/, and  store.jks, webclient.properties, ds.properties are set correctly.

My development environment is :

  • flex-client-sdk :  vSphere Web Client 6.5.0 build 4234016

  • vCenter Server : 6.0 u2

  • Eclipse Java EE IDE: Juno

Please let me know if you have any suggestions to resolve it.

Regards,

dinghb

Reply
0 Kudos
1 Reply
_vladi_
VMware Employee
VMware Employee

Hi,

 

It is normal not to have VECS keystore on your local setup - that's not a problem. The exception you provided just means no data for you customer experience will be sent to VMware.

 

Please check the following:

- store.jks is in C:\ProgramData\VMware\vCenterServer\cfg

- webclient.properties is in C:\ProgramData\VMware\vCenterServer\cfg\vsphere-client

- ds.properties is in C:\ProgramData\VMware\vCenterServer\cfg\vsphere-client\config

- Your vCenter Server is up and running (not down)

- The IP or URL of your vCenter Server is properly referenced in the webclient.properties

- store.jks is the actual one downloaded from your vCenter Server

If all this is met please regenerate the files using the dev-setup script from scratch and try again.

If it still doesn't work please send your cfg folder privately (and/or obfuscating any private data) so I can have a look.

 

Cheers,

Vladimir

Reply
0 Kudos