Liferay 无法更新ID为y的bundle:x.jar。该捆绑包已卸载

Liferay 无法更新ID为y的bundle:x.jar。该捆绑包已卸载,liferay,osgi,liferay-7,Liferay,Osgi,Liferay 7,在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/os

在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 

如何解决这个问题?

首先,在Liferay的
osgi/modules/
文件夹中找到JAR文件并将其删除

其次,再次将JAR复制到
deploy/

参考资料:


当您通过Liferay的
deploy
文件夹部署某个东西时,它会通过一种称为FileInstall的机制引入OSGi运行时

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

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


由于Liferay仅使用FileInstall,因此不使用Gogo Shell进行生产性部署是安全的。另外:通过GogoShell安装的bundle不会出现在支持FileInstall的目录中。重新部署后,捆绑包可能不在那里(特别是当您删除
osgi/state
文件夹时,有时会要求删除该文件夹。

\osgi\war
文件夹中删除.war文件,然后再次部署(从
\build\libs
复制到
\deploy
文件夹)。它会起作用