无法部署包含通过 Websphere 8.5 中的 aries 蓝图定义的骆驼路由的 osgi 包

2023-12-30

我创建了一个 .eba 文件(企业捆绑包存档),其中包含一个具有 apache 骆驼路由(Java DSL)的 osgi 捆绑包。 Camel 上下文定义是通过蓝图 xml 文件完成的。当我尝试在 Websphere Application Server 8.5 中部署 .eba 文件时,出现以下异常:

org.apache.aries.application.modelling.ModellerException:CWSAL0126E:对捆绑包 ib-base_0.0.1.SNAPSHOT 进行建模时发生异常:org.apache.aries.application.modelling.ModellerException:org.osgi.service.blueprint.container。 ComponentDefinitionException:不支持的节点命名空间:http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint.

我的蓝图xml文件如下:

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:camel="http://camel.apache.org/schema/blueprint"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0      
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel- 
blueprint.xsd">

<camel:camelContext id="cbrContext" trace="false">
    <camel:packageScan>
        <camel:package>a.b.c.d</camel:package>
    </camel:packageScan>
</camel:camelContext>
</blueprint>

我不太清楚为什么这在 Websphere 中失败。相同的 .eba 文件已成功部署在 Karaf 3.0.0-SNAPSHOT 中。 (此版本的 Karaf 使用 Aries Blueprint 版本 1.0.0)。

我猜 Websphere 8.5 中也使用了相同的版本,或者使用了 Aries Blueprint 1.0.0 的分叉版本。

根据 OSGi 规范,自定义名称空间(例如camel:)的任何蓝图扩展处理程序都可以从 OSGi 服务注册表中的键 (osgi.service.blueprint.namespace) 下检索。 value 元素告诉实际的命名空间 uri 。

eg:

<service interface="org.apache.aries.blueprint.NamespaceHandler">
    <service-properties>
        <entry key="osgi.service.blueprint.namespace" value="http://camel.apache.org/schema/blueprint"/>
    <entry key="osgi.service.blueprint.namespace" value="http://camel.apache.org/schema/blueprint/cxf"/>
    </service-properties>
    <bean class="org.apache.camel.blueprint.handler.CamelNamespaceHandler">
    </bean>
</service>

我不太清楚为什么 IBM 不遵守这个规范。

另一个值得思考的有趣点是,当我尝试使用 Websphere Application Developer Tool 创建蓝图 .xml 文件时,它仅显示 4 个扩展名,如下所示:

  1. IBM 蓝图扩展
  2. JPA 蓝图支持
  3. 蓝图交易支持
  4. 蓝图资源参考支持

我确保camel-core 和camel-blueprint 包都部署在websphere 的内部存储库中。

我尝试将 .eba 文件部署为资产。

不太确定,如果我错过了什么。如果有人能指出我正确的方向,我会很高兴。

此致,

斯里拉曼。


WebSphere 不支持自定义名称空间扩展(IBM 提供的扩展除外)。主要原因是它在 Aries(蓝图容器)隔离运行时运行。有两种选择

  • 使用camel api代替蓝图标签
  • 使用支持自定义命名空间扩展的其他容器(例如 Karaf)

Karaf 是骆驼的友好容器。

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

无法部署包含通过 Websphere 8.5 中的 aries 蓝图定义的骆驼路由的 osgi 包 的相关文章

随机推荐

  • AJAX - Spring 控制器 - JSP

    我想生成对 Spring MVC 控制器的 AJAX 基于 jQuery 请求 并将带有对象的 Collection 返回到 jsp 我有两个烦恼 1 AJAX成功块不起作用 数据类型的东西 2 不知道如何将这个对象显示到jsp上
  • C 中的 Salted sha512,无法与 Symfony2 的 FOSUserBundle 同步

    我的开发分为两个部分 该网站是一个使用 FOSUserBundle 的 Symfony 应用程序 它使用 SHA512 和盐对密码进行加密 一个用 C 语言编程的身份验证模块 一旦给出盐和明文密码 它应该能够重现 SHA512 加盐哈希 有
  • 如何用数据库数据填充TableView

    我一直在尝试加载TableView从数据库查询数据 但似乎无法让它工作 这是我第一次尝试填充TableView与数据库查询项目 以防我的代码看起来杂乱且远非良好 FXML 是通过 JavaFX SceneBuilder 完成的 这是数据库查
  • protobuf-net AddField 忽略 IgnoreListHandling

    我有这个数据结构声明 ProtoContract public class NotACollectionHolder public NotACollection some objects ProtoContract IgnoreListHa
  • ctypes.pointer、ctypes.POINTER 和 ctypes.byref 之间有什么区别?

    在ctypes中 指针和byref有什么区别 它们似乎都是将指针传递给函数的一种方式 例如作为输出参数 从功能上来说 它们是等效的 但是 那蟒蛇文档 http docs python org release 2 5 2 lib ctypes
  • 为什么我的 WinForm 控件在绘制事件之前闪烁?

    我有一个表单 其中加载了一个用户控件 其中包含 3 个其他用户控件 每次我移动到另一个选项卡并返回到该用户控件时 其中的 3 个控件甚至在事件触发之前就会闪烁 我尝试了一切 包括 this DoubleBuffered true this
  • 水平平滑动量滚动

    问题 我需要平滑一些鼠标滚轮水平的滚动到此布局 https jsfiddle net 38qLnzkh https jsfiddle net 38qLnzkh 选择 我发现这个脚本完全符合我的要求 但它似乎只能垂直工作 黄油 js http
  • VS2017 设置项目 - 在哪里?

    我正在尝试为 C 项目创建安装项目 安装程序 但在 VS2017 中找不到 安装项目 模板 在 VS2015 中它位于 其他项目类型 gt gt 设置和部署 gt gt Visual Studio 安装程序 我用过几次没有任何问题 我的 V
  • 带有半圆边缘的 android 按钮

    我正在尝试创建一个用于 Android 项目中的图像按钮的形状 该形状基本上在左侧和右侧都有半圆 我想我可以只使用带有半径的形状 XML 但这只是圆角 我需要整个左侧和右侧是半圆 如下图所示 我当前的形状 XML 如下所示
  • Java Apache FileUtils readFileToString 和 writeStringToFile 问题

    我需要将 java 文件 实际上是 pdf 解析为字符串并返回到文件 在这些过程之间 我将对给定的字符串应用一些补丁 但这在本例中并不重要 我开发了以下 JUnit 测试用例 String f1String FileUtils readFi
  • .Net - 什么时候 List.ForEach 优于标准 foreach 循环?

    通用列表类有一个 ForEach Action
  • `null` 被视为字符串?

    String s null s s hai System out println s Output nullhai 我以为这会让我陷入 NPE 状态 背后的根本逻辑是什么 使用时不抛出NPE 级联 使用时抛出NPE For s s hai
  • 为什么 Jackson 要使用以类命名的额外层来包裹我的对象?

    当我序列化时 public class FOO int field1 String field2 我得到以下内容 FOO field1 0 field2 value 你能指出我怎样才能使输出看起来像这样 field1 0 field2 va
  • 什么会使单个任务执行器停止处理任务?

    我正在使用一个java util concurrent ExecutorService我通过调用获得的Executors newSingleThreadExecutor This ExecutorService有时会停止处理任务 即使它尚未
  • 如何将 Owl Carousel 中的图像居中

    我的猫头鹰旋转木马包含不同宽度和高度的图片 如何将它们水平和垂直居中对齐 owl example owlCarousel navigation true div class owl carousel div img div div
  • 按名称对 'ls' 输出进行排序

    你能排序一个ls https en wikipedia org wiki Ls按名称列出 我的 ls 默认按名称排序 你看到什么了 man ls states 列出有关文件的信息 默认为当前目录 如果没有 则按字母顺序对条目进行排序 cft
  • 如果值为 0,如何隐藏 HTML 表格行

    我有一个 HTML 表格 有 4 列 Item Code Item Name Category Name and Quantity其中数量为输入字段 我正在做的是用 JSON 数据填充表 最初输入字段设置为 0 当用户由于大量数据而在输入字
  • 当类型嵌套时,TYPE_USE 注释会丢失,通用接口[重复]

    这个问题在这里已经有答案了 当带注释的类型是嵌套的泛型接口时 似乎无法通过反射访问 TYPE USE 注释 请观察以下示例 import java lang annotation ElementType import java lang a
  • Outlook 2016 VSTO 文件夹添加事件仅触发一次

    正在创建一个 Outlook 插件来跟踪邮箱中的邮件处理 我正在包装文件夹和项目 向其中添加一些事件 并将它们存储在本地列表中 以避免 GC 在首次执行后清除所有事件 但是 文件夹添加事件仍然只触发一次 不确定是什么问题 using Sys
  • 无法部署包含通过 Websphere 8.5 中的 aries 蓝图定义的骆驼路由的 osgi 包

    我创建了一个 eba 文件 企业捆绑包存档 其中包含一个具有 apache 骆驼路由 Java DSL 的 osgi 捆绑包 Camel 上下文定义是通过蓝图 xml 文件完成的 当我尝试在 Websphere Application Se