2017-07-19 33 views
1

在Liferay 7中,我已将模块JAR放入deploy/,然后通过Gogo Shell将其卸载,现在我想再次安装它。无法更新ID为y的包:x.jar。该软件包已被卸载

问题:当我再次将其复制到deploy/我得到这个错误:

INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:252] Processing httpclient-osgi-4.5.3.jar 
WARN [fileinstall-/home/nico/liferay/osgi/modules][org_apache_felix_fileinstall:103] Failed to update bundle: /home/nico/liferay/osgi/modules/httpclient-osgi-4.5.3.jar with ID 1088. The bundle has been uninstalled 

如何解决这个问题?

回答

2

当你通过部署Liferay的deploy文件夹的东西,它就会通过一个名为FileInstall机制引入到OSGi运行时。

当您通过Gogo shell从正在运行的系统取消部署时,该组件将被卸载,但支持FileInstall的目录仍包含该捆绑包(这意味着它将在下一次部署时重新安装)。通常情况下,这不是你想要的。

经验法则:当您通过FileInstall部署时,通过FileInstall取消部署。通过Gogo Shell部署时,通过Gogo Shell取消部署。不要混用两者。决定一个。

由于Liferay仅使用FileInstall,所以不要使用Gogo Shell进行生产性部署。 Plus:通过Gogo Shell安装的软件包不会在支持FileInstall的目录中结束。重新部署后,捆绑包可能不在那里(尤其是当您删除osgi/state文件夹时,有时会要求提供该文件夹。)