Liferay 无法更新ID为y的bundle:x.jar。该捆绑包已卸载
在Liferay 7中,我将一个模块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
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/
参考资料:
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
文件夹)。它会起作用