Unable to invoke SDK from Groovy in three different ways
Posted: 28. Aug 2009, 02:18
I'm trying to use Groovy to access the VirtualBox SDK. I've had no luck with the COM object, because Scriptom doesn't recognize the type (13) of the variants contained in the SafeArray:
ERROR org.codehaus.groovy.scriptom.UnsupportedVariantTypeException: 13 (d)
at groovysh_evaluate.run (groovysh_evaluate:6)
...
I have no idea what type 13 is. Does anyone know a workaround?
I also tried the Java classes in Groovy. However, I get an NPE on the first line, deep within CXF.
IWebsessionManager mgr = new IWebsessionManager("http://localhost:18083/");
yields
java.lang.NullPointerException
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:81)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:65)
at org.virtualbox_3_0.VboxService.<init>(VboxService.java:37)
at com.sun.xml.ws.commons.virtualbox_3_0.PortPool.getPort(IWebsessionManager.java:122)
at com.sun.xml.ws.commons.virtualbox_3_0.IWebsessionManager.connect(IWebsessionManager.java:176)
at com.sun.xml.ws.commons.virtualbox_3_0.IWebsessionManager.<init>(IWebsessionManager.java:156)
at vboxCOMsdkTest.run(vboxCOMsdkTest.groovy:8)
This error makes me wonder if it has to do with vboxwebsrv not serving WSDL files, but I would imagine the Java classes were written with that fact in mind. I would imagine these classes were generated from the WSDL.
I confirmed that soapUI is able to load the WSDL files from disk and can call the SDK, so I figured I would use GroovyWS as my third attempt. Well, even that fails. I can't get the WSClient object constructed. I'm not sure if that's because I'm trying to reference a local file, rather than a URL, or maybe because there is an import of one WSDL from the other. I don't know if it's a GroovyWS problem or a VBox SDK problem. Given the two previous failures, I'm inclined to blame the SDK. But soapUI works, so maybe not.
Any ideas why I can't call in from Groovy in any of these ways? Any other suggestions?
Thanks,
Lee Grey
ERROR org.codehaus.groovy.scriptom.UnsupportedVariantTypeException: 13 (d)
at groovysh_evaluate.run (groovysh_evaluate:6)
...
I have no idea what type 13 is. Does anyone know a workaround?
I also tried the Java classes in Groovy. However, I get an NPE on the first line, deep within CXF.
IWebsessionManager mgr = new IWebsessionManager("http://localhost:18083/");
yields
java.lang.NullPointerException
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:81)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:65)
at org.virtualbox_3_0.VboxService.<init>(VboxService.java:37)
at com.sun.xml.ws.commons.virtualbox_3_0.PortPool.getPort(IWebsessionManager.java:122)
at com.sun.xml.ws.commons.virtualbox_3_0.IWebsessionManager.connect(IWebsessionManager.java:176)
at com.sun.xml.ws.commons.virtualbox_3_0.IWebsessionManager.<init>(IWebsessionManager.java:156)
at vboxCOMsdkTest.run(vboxCOMsdkTest.groovy:8)
This error makes me wonder if it has to do with vboxwebsrv not serving WSDL files, but I would imagine the Java classes were written with that fact in mind. I would imagine these classes were generated from the WSDL.
I confirmed that soapUI is able to load the WSDL files from disk and can call the SDK, so I figured I would use GroovyWS as my third attempt. Well, even that fails. I can't get the WSClient object constructed. I'm not sure if that's because I'm trying to reference a local file, rather than a URL, or maybe because there is an import of one WSDL from the other. I don't know if it's a GroovyWS problem or a VBox SDK problem. Given the two previous failures, I'm inclined to blame the SDK. But soapUI works, so maybe not.
Any ideas why I can't call in from Groovy in any of these ways? Any other suggestions?
Thanks,
Lee Grey