无法使用ID y更新bundle:x.jar。该软件包已被卸载

时间:2017-07-19 09:43:30

标签: 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/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 

如何解决这个问题?

3 个答案:

答案 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文件夹)。它会起作用。