【问题标题】:Failed to update bundle: x.jar with ID y. The bundle has been uninstalled无法更新包:ID 为 y 的 x.jar。捆绑包已卸载
【发布时间】:2017-12-24 12:02:51
【问题描述】:

在 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 liferay-7


    【解决方案1】:

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

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

    参考资料:

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2014-04-10
          • 1970-01-01
          • 2014-02-20
          • 2016-01-15
          • 2016-12-17
          • 2014-02-23
          • 1970-01-01
          • 2017-02-11
          • 2013-07-02
          相关资源
          最近更新 更多