我创建了一个。eba文件(企业捆绑包存档),其中包含一个具有apache驼峰路由(Java DSL)的osgi捆绑包。骆驼上下文定义是通过蓝图xml文件完成的。当我尝试部署时。在Websphere Application Server 8.5中,我遇到以下异常:
组织。阿帕奇。白羊座。应用建模。ModelerException:CWSAL0126E:对捆绑包ib-base\U 0.0.1建模时发生异常。快照:组织。阿帕奇。白羊座。应用建模。ModelerException:组织。osgi。服务蓝图容器ComponentDefinitionException:不支持的节点命名空间:http://camel.apache.org/schema/blueprint.
我的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:)的任何blueprint扩展处理程序都是从OSGi服务注册表的项(OSGi.Service.blueprint.namespace)下检索的。value元素告诉实际的命名空间uri。
例如:
<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不遵守这个规范。
另一个值得思考的有趣点是,当我尝试使用Webphere Application Developer Tool创建蓝图. xml文件时,它只显示了4个扩展名,如下所示:
我确保骆驼核心和骆驼蓝图捆绑包都部署在websphere的内部存储库中。
我尝试将. eba文件部署为资产。
不太确定,如果我错过了什么。如果有人能给我指明正确的方向,我会很高兴。
顺致敬意,
斯利拉曼。
WebSphere不支持自定义命名空间扩展(IBM提供的扩展除外)。主要原因是它在Aries(Blueprint容器)隔离运行时运行。有两个选项
卡拉夫是骆驼的友好容器。
我使用EclipseIndigo使用OSGiJava框架开发了一些包。有一个主捆绑包,它依赖于其他捆绑包,并且具有要运行的主程序。如果我尝试在Eclipse中运行所有捆绑包,一切都正常工作,但是如果我将每个捆绑包保存为一个JAR,并在命令行中启动OSGi框架,当我尝试启动主捆绑包时,会出现异常<code>NoClassDefFoundError。找不到的类是依赖项。包的其余部分处于活动状态,主包刚
问题内容: 如何定义OSGi捆绑包的开始级别? 我正在使用Apache felix,并希望在框架执行过程中保持起始级别。我预计Manifest中的条目根本不需要非常频繁地更改bundle的开始级别。MF似乎是最明智的。我已经到org.osgi.framework.startlevel了,但是还没有看到实际的例子。 如果有一种巧妙的方法将起始级别并入POM,那么我也将maven与maven-bund
我试图在Felix中添加一个新的OSGI包(没有Karaf)作为ActiveMQ客户端(消息发送方)。 ActiveMQ客户端在非OSGI环境中运行良好。但当我在Felix中使用相同的代码(稍加修改)时,它会抛出以下错误: org.osgi.framework.捆绑异常:无法解决com.packtpub.felix.bookshelf-库存-impl-mock[7](R 7.3):缺少需求[com
关于ApacheCamel的简短问题。我有以下场景,其中我的服务器接收jms消息,然后转换为csv文件,然后插入DB。为此,我有两个bean: xml2csv 我使用路由像: 当"路由"一个文件从-到,它是移动像一个消息?或者把问题放在不同的地方,ApacheCamel是否获取一个文件,将其包装为消息,并将其路由到bean或组件? 我的理解是正确的还是错误的。
我还不是一个有经验的OSGi用户,因此我会遇到一些问题。 我正在尝试使用作为外部提供程序,因为我不希望我的包包含所有这些类。 但是,当我运行这组包(my和)时,我得到以下错误: 错误:Bundle org.apache.serviceMix.bundles.hadoop-client[56]错误启动文件:bundles/org.apache.serviceMix.bundles.hadoop-cl
我是OSGi的新手。我正在使用Apache Felix。我已经构建了一个捆绑包,并且具有依赖性。当我尝试使用启动它会给我这个错误。 org . OSGi . framework . bundle exception:无法解析lk . ucsc . research . belly runner[20](R 20.0):缺失需求[lk . ucsc . research . belly runner