Apache Karaf 如何对要安装和启动的包进行排序?

2024-01-06

我定义了四个捆绑包:

bundle 1 : export package x version 1
bundle 2 : import package x ver [1,2] and export package y;y uses x    
bundle 3 : export package x version 2
bundle 4 : import package y and also import package x version 2

使用apache felix(可分发二进制文件),我发现我应该在启动bundle 3之前手动强制不解析(或启动)bundle 1,然后再解析bundle 2(否则会出现使用约束问题,因为bundle 2将使用包x版本1并且在捆绑包 4 中将出现包 x 版本 1 和版本 2 --> 使用约束冲突)。
感谢这些帖子的作者:
http://njbartlett.name/2011/02/09/uses-constraints.html http://njbartlett.name/2011/02/09/uses-constraints.html
http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/ http://blog.springsource.com/2008/10/20/understanding-the-osgi-uses-directive/
我不喜欢对我的捆绑包强加顺序,我需要将所有捆绑包复制到 /bundle 目录中,然后安装框架实例并启动它们。 我注意到 Apache felix 按字母顺序对要安装的捆绑包进行排序(因此将安装捆绑包 1,然后启动第一个捆绑包)。 我尝试使用 Apache karaf,将捆绑包复制到 /deploy 中,发现问题消失了,所以我的问题是:

Apache Karaf(或 felix 文件安装)是否应用一种策略来强制启动捆绑包的任何顺序以避免此类问题?


您应该尝试使用 Karaf 功能进行此类部署。您创建一个包含一项功能的功能文件,并将所有捆绑包添加到该功能。然后 Karaf 将加载所有包并解析并一次性启动它们。因此解析器应该能够正确解析您的所有包。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Karaf 如何对要安装和启动的包进行排序? 的相关文章

  • AEM CQ 与 JPA(休眠)

    我正在使用 Adob e Experience Manager AEM 6 4 Service Pack 1 和 Forms Package 我有很多扩展的属性 属性 所以我制作了一个数据库图 我不想将所有其他内容保存在 crx 中 我想将
  • OSGi 捆绑包无法启动 - 无法解析 sun.reflect.generics.reflectObjects

    在对 AEM 项目的代码进行看似无关的更改后 我的包无法解析 检查日志后 我可以看到出现以下错误 22 04 2015 11 00 18 650 ERROR qtp1266495948 35 org apache felix http je
  • 如何检测是否在osgi容器中运行

    我有一个 OSGi 包 也可以在纯 Java 进程中运行 我需要能够判断捆绑包是否已加载到 OSGi 系统中 我怎样才能做到这一点 如果没有 OSGi 标准方法来执行此操作 我将采用 Eclipse Equinox 特定的方法 将 Bund
  • 如何使用 OSGi 和 EE6 模块化企业应用程序?

    我知道已经有一些与该主题相关的问题 但我还找不到真正的解决方案 目前我正在使用 EE6 JPA CDI JSF 开发应用程序 我想采用一种更加模块化的方法 而不是将所有内容打包到 WAR 或 EAR 中并将整个内容部署在应用程序服务器上 我
  • 我们如何为 pom.xml 创建一个 build.gradle 等效文件来构建和部署 AEM 代码?

    我正在尝试创建一个构建 gradle文件 例如完整的 pom xmlAEM Maven 原型 https github com Adobe Marketing Cloud aem project archetype or 懒骨头模板 htt
  • 如何使用 bnd/maven-bundle-plugin 将资源文件从 jar 依赖项包含到 osgi 包中?

    我在用着maven bundle plugin bnd有效地 从源中包含资源文件很简单 例如 资源文件 src main resources some xml 移至下面target目录 target classes some xml 在构建
  • 访问另一个 osgi 包中的资源?

    我使用 eclipse 插件项目向导 使用 eclipse Helios 创建了两个 OSGI 包 A 和 B 在捆绑包 B 的清单文件中 我添加了捆绑包 A 作为依赖项 此外 我已导出 A 中的包 以便它们对 B 可见 我在捆绑包 A 中
  • Spring MVC 控制器的运行时加载和动态映射请求/URL

    我们正在使用 Spring MVC 启动一个新项目 并且我们希望摆脱注释驱动的请求 url 映射 我们希望实现以下用例 用例A 用户输入 URL 请求映射处理程序检索映射列表 例如 从数据库 并基于此动态映射列表 它调用相关控制器 这是因为
  • 如何在 OSGi 中将 ManagedServiceFactory 正确实现为声明式服务?

    我有需要在每个配置基础上创建的服务 每个服务都依赖于外部资源 因此应该管理它自己的生命周期 即 取消 注册服务 因此 将这些实现为 DS 并让 SCR 生成多个实例是行不通的 人们可以实现一个注册 ManagedServiceFactory
  • 将现有 java 项目转换为 osgi 包的最佳方法

    我们有很多组件 我们只想模块化其中的几个 想知道 在我的构建环境的上下文中 从所有这些组件创建捆绑包的最佳方法是什么 我的环境 Java 6 Maven 2 2 1 Hudson 技术 Spring 3 0 5 WebSphere 7 Hi
  • WebLogic 和 OSGi

    有没有办法在 Weblogic 应用程序服务器中运行 OSGi 容器 我知道它可以与 JBoss Glassfish 配合使用 并且可以将 Equinox servlet 桥添加到您的 OSGi 项目中 桥的实现太旧了 但我想要类似 JBo
  • 无法捕获 Apache Karaf 客户端输出

    我使用以下命令在服务器模式下启动了 Apache Karaf 3 0 0 KARAF HOME bin start在 CentOS 6 5 中 然后我想使用运行几个命令 KARAF HOME bin client并捕获这些命令的输出 以确保
  • 包使用冲突:捆绑包启动时的导入包

    尝试安装 htmlunit 捆绑包时出现以下错误 com springsource com gargoylesoftware htmlunit 2 6 0 370 could not be resolved Reason Package u
  • OSGi 应用程序设计 - 我是否滥用服务框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我们正在开发的应用程序中 我有一个供数据提供程序组件实现的通用接口 并且我将这些提供程序作为服务连接起来 我的一位同事建议 最好只创建一项可以
  • 有没有办法查看 OSGi 应用程序中注册的服务?

    我有一个运行 Equinox 的 OSGi 应用程序 我想查看该应用程序提供的服务 我怎样才能做到这一点 从 gogo shell 类型 inspect cap service 这将显示所有捆绑包注册的所有服务 如果您想显示特定捆绑包的服务
  • maven 构建 OSGi 的问题(包括依赖项)

    我目前正在从 OSGi iPOJO 和 iPOJO Annotations 开始 并尝试构建一个要在 Felix 中部署的简单组件 不幸的是 我遇到了各种问题 这些问题需要我花几个小时才能解决 或者在浪费时间后我什至无法解决 如下所示 我想
  • Cq5.5 将 servlet 过滤器应用于特定路径

    我正在 cq5 5 中开发自定义表单处理程序 一切都很顺利 我现在正在努力锁定一些安全性 我的任务之一是对表单处理程序路径实施请求限制过滤器 目前我有类似的东西 Component immediate true metatype true
  • 为什么对 CQ 中的每个服务使用 @Component 注解

    我对以下事情有点困惑 我明白 Service and Component注解是我们在OSGi中定义组件或服务时的主要 注解 我指的是http felix apache org documentation subprojects apache
  • 在 Apache Servicemix 4 中的 OSGi 包之间共享配置文件?

    有人能够在 SMX4 中的两个或多个捆绑包之间成功共享配置吗 我正在寻找的是这样的 有一个文件 SMX HOME etc myconfiguration cfg 使此配置 可用 以便使用 Spring dm 通过 OSGi 配置管理将其注入
  • 无法在 Mac OS X 上显示 SWT

    我正在运行 Mac OS X Snow Leopard 并且不想从 OSGi 捆绑包中的激活器访问显示器 以下是我的激活器的启动方法 Override public void start BundleContext context thro

随机推荐