Hi laurentsd, when I want to redeploy plugin UI(based on new HTML seed projects) for fast development in plugin mode, I use the manual way to refresh the plugin UI. Simply do :
cd tools
./deploy-war.bat
Then rebuilds the plugin .war file successfully and copies it to the Virgo pickup directory at <SDK_HOME>/vsphere-ui/server/pickup/ .
But I get errors when I track the redeploy in the Virgo console like this:
[2017-04-10T17:08:44.003+08:00] [INFO ] fs-watcher <HD0001I> Hot deployer processing 'CREATED' event for file 'vsi-ui-1.0.0-SNAPSHOT.war'.
[2017-04-10T17:08:44.032+08:00] [ERROR] fs-watcher <HD0002E> Hot deploy failed for file 'vsi-ui-1.0.0-SNAPSHOT.war'. org.eclipse.virgo.nano.deployer.api.core.DeploymentException: The artifact bundle 'com.emc.vsi.vsi-ui' version '1.0.0' in scope 'null' at URI 'file:/C:/Users/gengp1/Work/vSphere6.5/HTML-C~1/VSPHER~1/server/pickup/vsi-ui-1.0.0-SNAPSHOT.war' cannot be stored in the runtime artifact model as it clashes with the artifact bundle 'com.emc.vsi.vsi-ui' version '1.0.0' in scope 'null' which is already present. at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.doInstall(PipelinedApplicationDeployer.java:179)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.install(PipelinedApplicationDeployer.java:140)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.deploy(PipelinedApplicationDeployer.java:253)
at org.eclipse.virgo.nano.deployer.hot.HotDeploymentFileSystemListener.deploy(HotDeployerFileSystemListener.java:225)
at org.eclipse.virgo.nano.deployer.hot.HotDeploymentFileSystemListener.onChange(HotDeployerFileSystemListener.java:79)
at org.eclipse.virgo.util.io.FileSystemChecker.notifyListeners(FileSystemChecker.java:380)
at org.eclipse.virgo.util.io.FileSystemChecker.check(FileSystemChecker.java:289)
at org.eclipse.virgo.nano.deployer.hot.WatchTask.run(WatchTask.java:49)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.eclipse.virgo.kernel.deployer.model.DuplicateFileNameException: The artifact bundle 'com.emc.vsi.vsi-ui' version '1.0.0' in scope 'null' at URI
'file:/C:/Users/gengp1/Work/vSphere6.5/HTML-C~1/VSPHER~1/server/pickup/vsi-ui-1.0.0-SNAPSHOT.war' cannot be stored in the runtime artifact model as it clashe
s with the artifact bundle 'com.emc.vsi.vsi-ui' version '1.0.0' in scope 'null' which is already present.
at org.eclipse.virgo.kernel.deployer.model.internal.StandardRuntimeArtifactModel.checkFileName(StandardRuntimeArtifactModel.java:100)
at org.eclipse.virgo.kernel.deployer.model.internal.StandardRuntimeArtifactModel.add(StandardRuntimeArtifactModel.java:78)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.addGraphToModel(PipelinedApplicationDeployer.java:303)
at org.eclipse.virgo.kernel.deployer.core.internal.PipelinedApplicationDeployer.doInstall(PipelinedApplicationDeployer.java:174)
... 8 common frames omitted
I have already set the attribute 'scope' equals to 'global' in plugin-package.xml, and packaged needed UI and Java bundles with it in <SDK_HOME>/vsphere-ui/plugin-packages/ for starting our plugin in Virgo server. I check the manifest file in UI bundle has the correct version '1.0.0', what does the error mean? (I use the HTML CLient SDK Fling 9)
Thanks in advance.
Great. Thanks for the update.
If your server/pickup directory empty (other than your plugin bundles) it must because the following flag is missing in webclient.properties:
pickup.deployer=true
Let me know if this solves your problem and I'll update the documentation!
Hi laurentsd, as you said, I set the flag 'pickup.deployer=true' in webclient.properties, and I see the hot deployer processing for our plugin UI is successful, just like this:
But after I re-login the vSphere Client, I don't see any our plugin UI in it which means our plugin UI is missing. For instance, I do some UI changes in Administration -> Settings(just like the seed-ui project to get client id for us), and the vSphere Client reports this error:
And I can see our plugin is installed on vSphere Client:
After that I check some log files for this issue, such as plugin-medic.log, eventlog.log and vsphere_client_virgo.log. And I only find an error in plugin-medic.log like this:
[2017-04-12T10:36:15.782+08:00] [ERROR] [com.emc.vsi.plugin:8.0.0.1] The plugin is deployed with OSGi isolation disabled ('scope="global"' is specified in "plugin-package.xml"). The plugin's scope is set to "global"
but no useful error messages in vsphere_client_virgo.log...
What's the root cause of this issue for cannot refresh plugin UI?
Thanks.
Can you attach the while virgo log?
Hi laurentsd, I have resolved this issue after I changed another vCenter for developing, because the previous vCenter is 6.0, and the new one is 6.5. I guess this make the issue.
Great. Thanks for the update.