I am using the documents from the updated-sdk-docs. I have a very simple helloworld plugin. It is made up like the echo service example, and it passes a string to a simple java service and receives the string back to display to the UI.
This all works great in the SDK environment.
Now I want to move this simple helloworld plugin to my true vCenter system (containing no eclipse, etc). Using the SDK-Tutorial.html, step 3 discusses "Package and register your solution". I used eclipse, as directed, and chose "vSphere SDK Tools --> Package vSphere Client plug-in". I made sure to make it dependent on my java service. I looked over all of the files it created for me, and I had to modify the plugin-package.xml file to set the <bundlesOrder> to have my java service load before my flex. I created the zip file and put it on an accessible web server. I then registered using the #3 "old vSphere Client" method described in the SDK-Tutorial.html file. I am on https, so I made sure to include the correct SHA1 thumbprint.
I then restarted the vSphere Web Client service on the vCenter system. Then I logged in. When my plugin did not appear, I went to look in the logs.
I looked into C:\ProgramData\VMware\vSphere Web Client\Logs\wrapper.log and found errors. I can paste the full error below, but it starts with this:
INFO | jvm 1 | 2013/08/28 11:23:18 | [2013-08-28 11:23:18.349] [INFO ] start-signalling-2 <DE0005I> Started bundle 'com.vmware.vsm.vsmui' version '5.1.0'. INFO | jvm 1 | 2013/08/28 11:25:08 | [2013-08-28 11:25:08.223] [INFO ] onnection(7)-192.168.102.155 <DE0000I> Installing bundle 'com.acme.helloWorldJava.HelloWorldJava' version '1.0.0'. INFO | jvm 1 | 2013/08/28 11:25:09 | [2013-08-28 11:25:09.564] [INFO ] onnection(7)-192.168.102.155 <DE0001I> Installed bundle 'com.acme.helloWorldJava.HelloWorldJava' version '1.0.0'. INFO | jvm 1 | 2013/08/28 11:25:09 | [2013-08-28 11:25:09.642] [INFO ] onnection(7)-192.168.102.155 <DE0004I> Starting bundle 'com.acme.helloWorldJava.HelloWorldJava' version '1.0.0'. INFO | jvm 1 | 2013/08/28 11:25:10 | [2013-08-28 11:25:10.064] [ERROR] start-signalling-2 <DE0006E> Start failed for bundle 'com.acme.helloWorldJava.HelloWorldJava' version '1.0.0'. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'HelloWorldJava': Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Class[]' for property 'interfaces'; nested exception is java.lang.IllegalArgumentException: Error loading class [com.acme.helloWorldJava.HelloWorldJava]: problem with class file or dependent class.
So it tried to start loading my HelloWorldJava, but failed. Note that it loads just fine in the SDK environment. I have kept this code very simple. It does not load any third party jars or anything. The interface class only has the one method: echo. So I'm not sure what I am missing; and not sure why it works in the SDK environment but not on the production server.
I also tried looking in the Tomcat catalina logs, but I didn't see anything in there that stood out. Additionally, the VPXD logs just seem to show where I logged in, but no additional details to help with the error.
Any help is greatly appreciated.
I have attached a snippit of the wrapper.log containing all of the errors in this region in case you see something that I have missed. When you get to the flex errors, you will see that it fails due to the dependency (as expected) since the java portion did not load properly.