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.<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
Done.
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
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)
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.