pwmiller
Enthusiast
Enthusiast

vCloud 5.1 Plugin with vCO 5.5 + vCloud Director 5.5: Probable Incompatibility?

Jump to solution

Hello,

I've found that when using the following combination that vCenter Orchestrator is unable to enumerate vCloud Director objects below the Organization vDC level:

  • vCloud 5.5
  • vCO 5.5
  • vCloud Director Plugin for vCO 5.1
  • Logging into system organization.

The following error is reported in the logs - I've underlined relevant sections. What appears to happen is that the following method: com.vmware.vmo.plugin.vcloud.VCloudEntityResolver.getEntityByReference is invoked, but fails with this exception: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Invalid final field javax.xml.bind.JAXBElement.name. Is there a workaround currently available or a out-of-band release of the vCloud Director plugin that is compatible with 5.5?

Any help beyond "this is an unsupported configuration," and "a compatible plugin will be released later this year" would be appreciated, as we depend on vCO for our day-to-day provisioning operations.

Here's the full error stack if any developers happen to glance upon this post:

2013-10-15 10:56:23.021-0400 [http-bio-ip-8281-exec-16] ERROR {} [VCloudPluginFactory]

com.vmware.vmo.plugin.vcloud.VCloudPluginException

  at com.vmware.vmo.plugin.vcloud.VCloudEntityResolver.getEntityByReference(VCloudEntityResolver.java:107)

  at com.vmware.vmo.plugin.vcloud.VCloudPluginFactory.hasChildrenInRelation(VCloudPluginFactory.java:206)

  at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at ch.dunes.vso.sdk.DirectInvoker.invoke(DirectInvoker.java:55)

  at ch.dunes.vso.sdk.SDKDatasourceInvoker.hasChildrenInRelation(SDKDatasourceInvoker.java:136)

  at ch.dunes.vso.sdk.SDKFinder._hasChildrenInRelation(SDKFinder.java:266)

  at ch.dunes.vso.sdk.SDKFinder.hasChildrenInRelation(SDKFinder.java:241)

  at ch.dunes.vso.sdk.ModulesFactory.hasChildrenInRelation(ModulesFactory.java:534)

  at com.vmware.o11n.sdk.EnhancedScriptingSDK.hasChildrenInRelation(EnhancedScriptingSDK.java:104)

  at com.vmware.o11n.service.sdk.SdkModuleServiceImpl.hasChildrenInRelation(SdkModuleServiceImpl.java:66)

  at com.vmware.o11n.service.factory.VcoFactoryFacade.hasChildrenInRelation(VcoFactoryFacade.java:1613)

  at sun.reflect.GeneratedMethodAccessor141.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at com.vmware.o11n.service.security.AccessRightsInterceptor.invoke(AccessRightsInterceptor.java:92)

  at com.vmware.o11n.service.security.AccessRightsInterceptor.invoke(AccessRightsInterceptor.java:83)

  at com.vmware.o11n.service.webremoting.VcoDelegatingWebFacade.invokeOperation(VcoDelegatingWebFacade.java:106)

  at com.vmware.o11n.integration.initialization.VcoFactoryServiceFacadeProxy.invokeOperation(VcoFactoryServiceFacadeProxy.java:86)

  at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)

  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)

  at com.sun.proxy.$Proxy104.invokeOperation(Unknown Source)

  at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)

  at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:38)

  at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)

  at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)

  at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73)

  at org.springframework.web.context.support.HttpRequestHandlerServlet.service(HttpRequestHandlerServlet.java:67)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

  at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:95)

  at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86)

  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)

  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)

  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)

  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)

  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)

  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)

  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)

  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)

  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)

  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)

  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

  at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.reflect.InvocationTargetException

  at sun.reflect.GeneratedMethodAccessor150.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at com.vmware.vmo.plugin.vcloud.VCloudEntityResolver.getEntityByReference(VCloudEntityResolver.java:105)

  ... 56 more

Caused by: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Invalid final field javax.xml.bind.JAXBElement.name

  at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.validateFieldAccess(PureJavaReflectionProvider.java:149)

  at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:105)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.marshal(ReflectionConverter.java:44)

  at com.thoughtworks.xstream.core.ReferenceByXPathMarshaller.convertAnother(ReferenceByXPathMarshaller.java:36)

  at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:68)

  at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:47)

  at com.thoughtworks.xstream.core.ReferenceByXPathMarshaller.convertAnother(ReferenceByXPathMarshaller.java:36)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter$1.writeField(ReflectionConverter.java:81)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter$1.visit(ReflectionConverter.java:59)

  at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:108)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.marshal(ReflectionConverter.java:44)

  at com.thoughtworks.xstream.core.ReferenceByXPathMarshaller.convertAnother(ReferenceByXPathMarshaller.java:36)

  at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:68)

  at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:47)

  at com.thoughtworks.xstream.core.ReferenceByXPathMarshaller.convertAnother(ReferenceByXPathMarshaller.java:36)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter$1.writeField(ReflectionConverter.java:81)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter$1.visit(ReflectionConverter.java:59)

  at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:108)

  at com.thoughtworks.xstream.converters.reflection.ReflectionConverter.marshal(ReflectionConverter.java:44)

  at com.thoughtworks.xstream.core.ReferenceByXPathMarshaller.convertAnother(ReferenceByXPathMarshaller.java:36)

  at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:46)

  at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.marshal(ReferenceByXPathMarshallingStrategy.java:17)

  at com.thoughtworks.xstream.XStream.marshal(XStream.java:476)

  at com.thoughtworks.xstream.XStream.marshal(XStream.java:466)

  at com.thoughtworks.xstream.XStream.toXML(XStream.java:438)

  at net.sf.beanlib.utils.xml.XmlUtils.toXml(XmlUtils.java:28)

  at net.sf.beanlib.utils.ObjectUtils.deepCopy(ObjectUtils.java:32)

  at com.vmware.vmo.plugin.vcloud.model.ModelHelper.cloneObject(ModelHelper.java:453)

  at com.vmware.vmo.plugin.vcloud.model.Vdc.getInstance(Vdc.java:88)

  ... 60 more

0 Kudos
1 Solution

Accepted Solutions
iiliev
VMware Employee
VMware Employee

XStream library need to be updated to version 1.4.4+ to make it work with Java 7.

You may try the following (no guarantee it will work, though)

  1. Stop vCO server
  2. Locate plug-in file within your vCO deployment directory (/app-server/plugins/o11nplugin-vcloud.dar) and backup it to a safe location.
  3. Open it with some program which can read zip files (like WinZip, WinRAR, etc) and go to 'lib' folder
  4. There should be a file named 'xstream-1.x.y.jar'. Most likely, you'll see 'xstream-1.3.1.jar' (version 1.3.1)
  5. You need to replace it with 'xstream-1.4.4.jar', and possibly add one more library - 'xmlpull-1.1.3.1.jar'. If you can't find these libraries on the Web, I can send them to you by email.
  6. Remove temporary tomcat directories within vCO directory (/app-server/work/, /app-server/temp/)
  7. Start vCO server

I don't have a working vCloud environment to test it, so this may not work without recompiling the plug-in, but it won't hurt to try.

View solution in original post

0 Kudos
11 Replies
cdecanini_
VMware Employee
VMware Employee

This error may happen in the Java SDK so it is unlikely it will be solved. I would suggest opening a support request and ask if you can get early access to the 5.5 plug-in.

If my answer resolved or helped you, please mark it as Correct or Helpful to award points. Thank you! Visit http://www.vcoteam.info & http://blogs.vmware.com/orchestrator for vCenter Orchestrator tips and tutorials - @vCOTeam on Twitter
pwmiller
Enthusiast
Enthusiast

Thanks. I've opened SR # 13388117410 and referred it to this thread. I'd be happy to test the 5.5 plug-in in these environments.

0 Kudos
msmoritz
Contributor
Contributor

This error also occurs in the following combination.

vCenter Orchestrator 5.5

vCloud Director 5.1

vCloud Director vCO Plugin 5.1.

0 Kudos
iiliev
VMware Employee
VMware Employee

XStream library need to be updated to version 1.4.4+ to make it work with Java 7.

You may try the following (no guarantee it will work, though)

  1. Stop vCO server
  2. Locate plug-in file within your vCO deployment directory (/app-server/plugins/o11nplugin-vcloud.dar) and backup it to a safe location.
  3. Open it with some program which can read zip files (like WinZip, WinRAR, etc) and go to 'lib' folder
  4. There should be a file named 'xstream-1.x.y.jar'. Most likely, you'll see 'xstream-1.3.1.jar' (version 1.3.1)
  5. You need to replace it with 'xstream-1.4.4.jar', and possibly add one more library - 'xmlpull-1.1.3.1.jar'. If you can't find these libraries on the Web, I can send them to you by email.
  6. Remove temporary tomcat directories within vCO directory (/app-server/work/, /app-server/temp/)
  7. Start vCO server

I don't have a working vCloud environment to test it, so this may not work without recompiling the plug-in, but it won't hurt to try.

0 Kudos
msmoritz
Contributor
Contributor

This workaround allowed me to get me past the getEntityByReference error.  I used the xstream_1.4.5.jar.  I did not put the xmlpull library into the plugin.dar file.

Thanks Ilian.  At least until VMware revs the plugin, this allows me to keep moving without reverting to vCO 5.1.

0 Kudos
pwmiller
Enthusiast
Enthusiast

Thanks Ilian, I've confirmed that the workaround is functional - objects are now visible below the vDC.

0 Kudos
qc4vmware
Virtuoso
Virtuoso

Can someone tell me if the current vCD 5.5 plugin is backward compatible with with vCD 5.1?  I am trying to get a vCO 5.5 server up and running and I am experiencing the same issue with nothing being returned past the org vdc with the vCD 5.1 plugin.  The documentation for the vCD 5.5 plugin reads to me as though it is only compatible with 5.5 and I would need to use the 5.1 plugin (with this hack) if I want to move to vCO 5.5 .  I am not comfortable doing so if this is an unsupported configuration.

0 Kudos
cdecanini_
VMware Employee
VMware Employee

The 5.5 plug-in is not backward compatible.

Please use the 5.1 plug-in from the documents tab.

If my answer resolved or helped you, please mark it as Correct or Helpful to award points. Thank you! Visit http://www.vcoteam.info & http://blogs.vmware.com/orchestrator for vCenter Orchestrator tips and tutorials - @vCOTeam on Twitter
0 Kudos
tmalaher
Contributor
Contributor

What are you referring to when you say "the documents tab"? Can you provide a URL or a series of link clicks to get me there? I've not been able to find a link to the "VCD 5.1 plugin for VCO 5.5" download.

0 Kudos
tmalaher
Contributor
Contributor

My problem is with a similar setup: VCO 5.5 talking to VCD 5.1

I'm using  o11nplugin-vcloud.dar which is supposedly for VCO 5.5 to talk to VCD 5.1 (supplied as a download link in an SR) and it shows up in the Plugins list in VCO Configurator as ""

When I have an object of type vCloud:Vdc and try to get the ".parent" property, the resulting value comes back as "undefined", instead of as a vCloud:Organization object.

0 Kudos
pwmiller
Enthusiast
Enthusiast

For those here and scratching their heads: xstream 1.4.4 also appears to be invalid (it is included in the 5.5 plugin). Upgrading to 1.4.7 resolves the issue in 5.5 (for vCO in Windows).