在Liferay 7中,我将模块JAR放入deploy/
,然后通过Gogo Shell卸载它,现在我想再次安装它。
问题:当我再次将其复制到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
如何解决这个问题?
答案 0 :(得分:3)
当您通过Liferay的deploy
文件夹部署某些内容时,它会通过名为FileInstall的机制引入OSGi运行时。
当您从正在运行的系统中通过Gogo shell取消部署时,组件将被卸载,但支持FileInstall的目录仍然包含该捆绑包(意味着它将在下次部署时重新安装)。通常这不是你想要的。
经验法则:当您通过FileInstall进行部署时,通过FileInstall取消部署。当您通过Gogo Shell部署时,通过Gogo Shell取消部署。不要混合两者。决定一个。
由于Liferay仅使用FileInstall,因此不使用Gogo Shell进行高效部署是安全的。另外:通过Gogo Shell安装的捆绑包最终不会在支持FileInstall的目录中结束。重新部署后可能不存在该捆绑包(特别是当您删除有时需要的osgi/state
文件夹时。
答案 1 :(得分:0)
首先,在Liferay的osgi/modules/
文件夹中找到JAR文件并将其删除。
其次,再次将JAR复制到deploy/
。
参考文献:
答案 2 :(得分:0)
从\osgi\war
文件夹中删除.war文件,然后再次部署(从\build\libs
复制到\deploy
文件夹)。它会起作用。