VMware {code} Community
jhiggins79
Contributor
Contributor

vSphere Web Services SDK Setup Help

I am attempting to setup a proof of concept for Citrix XenDesktop 5.  I am attempting to integrate this with our ESXi 4.1 farm but in order to do that I am told I need to setup the web services.  I hope somebody can help me out, I contacted VM Ware support but they refered me to this community site instead.  I am slightly shocked they don't have any staff on hand who have set this up in order to help their customers.

I followed this guide:

https://www.vmware.com/support/developer/vc-sdk/visdk41pubs/vsp41_developerssetupguide.pdf

I ran the build process but when I go to test it with the provided sample application in the SDK using this command:

run.bat com.vmware.samples.general.SimpleClient --url https://vmprod20.corp.pgcore.com/sdk --username ***** --password ****** [--ignorecert ignorecert]

(**** are just place holders for user name and password)

I get this dump of errors:

at com.vmware.apputils.vim.ServiceUtil.clientConnect(ServiceUtil.java:39

)

        at com.vmware.apputils.AppUtil.connect(AppUtil.java:530)

        at com.vmware.samples.general.SimpleClient.main(SimpleClient.java:154)

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAl

gorithmParameterException: the trustAnchors parameter must be non-empty

        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:

56)

        at sun.security.validator.Validator.getInstance(Validator.java:146)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509Tr

ustManagerImpl.java:105)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(

X509TrustManagerImpl.java:167)

        at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(

SSLContextImpl.java:320)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien

tHandshaker.java:841)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa

ndshaker.java:106)

        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:4

95)

        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav

a:433)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j

ava:877)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS

LSocketImpl.java:1089)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1116)

        ... 19 more

Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors pa

rameter must be non-empty

        at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java

:183)

        at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:10

3)

        at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderPara

meters.java:87)

        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:

54)

        ... 30 more

        {http://xml.apache.org/axis/}hostname:vmprod20

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.s

ecurity.InvalidAlgorithmParameterException: the trustAnchors parameter must be n

on-empty

        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)

        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)

        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg

y.java:32)

        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)

        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)

        at org.apache.axis.client.Call.invoke(Call.java:2767)

        at org.apache.axis.client.Call.invoke(Call.java:2443)

        at org.apache.axis.client.Call.invoke(Call.java:2366)

        at org.apache.axis.client.Call.invoke(Call.java:1812)

        at com.vmware.vim.VimBindingStub.retrieveServiceContent(VimBindingStub.j

ava:23449)

        at com.vmware.apputils.vim.ServiceConnection.connect(ServiceConnection.j

ava:54)

        at com.vmware.apputils.vim.ServiceUtil.clientConnect(ServiceUtil.java:39

)

        at com.vmware.apputils.AppUtil.connect(AppUtil.java:530)

        at com.vmware.samples.general.SimpleClient.main(SimpleClient.java:154)

Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected er

ror: java.security.InvalidAlgorithmParameterException: the trustAnchors paramete

r must be non-empty

        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

584)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

547)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketI

mpl.java:1530)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1123)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1100)

        at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFac

tory.java:186)

        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:1

91)

        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.ja

va:404)

        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

        ... 14 more

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAl

gorithmParameterException: the trustAnchors parameter must be non-empty

        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:56)

        at sun.security.validator.Validator.getInstance(Validator.java:146)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509Tr

ustManagerImpl.java:105)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(

X509TrustManagerImpl.java:167)

        at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(

SSLContextImpl.java:320)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien

tHandshaker.java:841)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa

ndshaker.java:106)

        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:4

95)

        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav

a:433)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j

ava:877)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS

LSocketImpl.java:1089)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1116)

        ... 19 more

Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors pa

rameter must be non-empty

        at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java

:183)

        at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:103)

        at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters

.java:87)

        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:54)

        ... 30 more

[ Thu Apr 07 13:42:20 CDT 2011 ] End Log.

Exception in thread "main" AxisFault

faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException

faultSubcode:

faultString: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected

error: java.security.InvalidAlgorithmParameterException: the trustAnchors param

eter must be non-empty

faultActor:

faultNode:

faultDetail:

        {http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLException: java

.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParamete

rException: the trustAnchors parameter must be non-empty

        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

584)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

547)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketI

mpl.java:1530)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1123)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1100)

        at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFac

tory.java:186)

        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:1

91)

        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.ja

va:404)

        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg

y.java:32)

        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)

        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)

        at org.apache.axis.client.Call.invoke(Call.java:2767)

        at org.apache.axis.client.Call.invoke(Call.java:2443)

        at org.apache.axis.client.Call.invoke(Call.java:2366)

        at org.apache.axis.client.Call.invoke(Call.java:1812)

        at com.vmware.vim.VimBindingStub.retrieveServiceContent(VimBindingStub.j

ava:23449)

        at com.vmware.apputils.vim.ServiceConnection.connect(ServiceConnection.j

ava:54)

        at com.vmware.apputils.vim.ServiceUtil.clientConnect(ServiceUtil.java:39

)

        at com.vmware.apputils.AppUtil.connect(AppUtil.java:530)

        at com.vmware.samples.general.SimpleClient.main(SimpleClient.java:154)

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAl

gorithmParameterException: the trustAnchors parameter must be non-empty

        at sun.security.validator.PKIXValidator.&lt;init&gt;(PKIXValidator.java:

56)

        at sun.security.validator.Validator.getInstance(Validator.java:146)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509Tr

ustManagerImpl.java:105)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(

X509TrustManagerImpl.java:167)

        at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(

SSLContextImpl.java:320)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien

tHandshaker.java:841)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa

ndshaker.java:106)

        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:4

95)

        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav

a:433)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j

ava:877)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS

LSocketImpl.java:1089)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1116)

        ... 19 more

Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors pa

rameter must be non-empty

        at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java

:183)

        at java.security.cert.PKIXParameters.&lt;init&gt;(PKIXParameters.java:10

3)

        at java.security.cert.PKIXBuilderParameters.&lt;init&gt;(PKIXBuilderPara

meters.java:87)

        at sun.security.validator.PKIXValidator.&lt;init&gt;(PKIXValidator.java:

54)

        ... 30 more

        {http://xml.apache.org/axis/}hostname:vmprod20

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.s

ecurity.InvalidAlgorithmParameterException: the trustAnchors parameter must be n

on-empty

        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)

        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)

        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg

y.java:32)

        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)

        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)

        at org.apache.axis.client.Call.invoke(Call.java:2767)

        at org.apache.axis.client.Call.invoke(Call.java:2443)

        at org.apache.axis.client.Call.invoke(Call.java:2366)

        at org.apache.axis.client.Call.invoke(Call.java:1812)

        at com.vmware.vim.VimBindingStub.retrieveServiceContent(VimBindingStub.j

ava:23449)

        at com.vmware.apputils.vim.ServiceConnection.connect(ServiceConnection.j

ava:54)

        at com.vmware.apputils.vim.ServiceUtil.clientConnect(ServiceUtil.java:39

)

        at com.vmware.apputils.AppUtil.connect(AppUtil.java:530)

        at com.vmware.samples.general.SimpleClient.main(SimpleClient.java:154)

Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected er

ror: java.security.InvalidAlgorithmParameterException: the trustAnchors paramete

r must be non-empty

        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

584)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1

547)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketI

mpl.java:1530)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1123)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1100)

        at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFac

tory.java:186)

        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:1

91)

        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.ja

va:404)

        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

        ... 14 more

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAl

gorithmParameterException: the trustAnchors parameter must be non-empty

        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:56)

        at sun.security.validator.Validator.getInstance(Validator.java:146)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509Tr

ustManagerImpl.java:105)

        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(

X509TrustManagerImpl.java:167)

        at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(

SSLContextImpl.java:320)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien

tHandshaker.java:841)

        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa

ndshaker.java:106)

        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:4

95)

        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav

a:433)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j

ava:877)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS

LSocketImpl.java:1089)

        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm

pl.java:1116)

        ... 19 more

Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors pa

rameter must be non-empty

        at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java

:183)

        at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:103)

        at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters

.java:87)

        at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:54)

        ... 30 more

Done.

0 Kudos
3 Replies
jhiggins79
Contributor
Contributor

Update:

I rebuilt it using the --ignorecert option and the sample code works with http instead of https.

However when I attempt to deploy Citrix XenDesktop 5 using http://servername.ourFQDN.com/sdk it does not work.  This is the error I get:

Script history:
Create Connection
This script will create a new connection for hosts to use
4/7/2011 2:48:48 PM

New-Item -Path 'xdhyp:\connections' -Name 'QD Connection' -HypervisorAddress @('http://servername.ourFQDN.com/sdk') -ConnectionType 'VCenter' -Username 'username' -Password '********' -AdminAddress 'localhost'

New-Item : The hypervisor was not contactable at the supplied address.
    + CategoryInfo : InvalidOperation: (:) [New-Item], InvalidOperationException
    + FullyQualifiedErrorId : Citrix.XDPowerShell.HostStatus.HypervisorNotContactable,Microsoft.PowerShell.Commands.NewItemCommand

New-Item : The hypervisor was not contactable at the supplied address.
    + CategoryInfo : NotSpecified: (:) [New-Item], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.NewItemCommand

0 Kudos
Steve_Jin
Expert
Expert

Try this 5 minute tutorial for running your first app in 5 minutes:

http://vijava.sourceforge.net/doc/getstarted/tutorial.htm

Steve Jin, Author of VMware VI and vSphere SDK (http://www.doublecloud.org)

Steve JIN Author of VMware VI and vSphere SDK; Creator of open source VI Java API (http://vijava.sf.net); Blogger at http://www.doublecloud.org
0 Kudos
jhiggins79
Contributor
Contributor

I went through the tutorial and this is the result:

time taken:1209
root:Datacenters
Hello Window 7 32bit Base
GuestOS: Microsoft Windows Vista (32-bit)
Multiple snapshot supported: true

Does this mean the SDK is working properly?  I still can't get XenDesktop 5 to talk to it.

0 Kudos