给定一个非常简单的KarafCamel包,使用camel-archetype-blueprint生成,我想添加一个通过属性配置的数据源,而不是在blueprint.xml.我尝试以各种方式配置PropertiesComponent并访问MySQL数据源的property值内的属性,但似乎都不起作用。但是,在记录消息时,可以访问这些属性。如何使用属性文件中的参数值配置数据源?我特别需要它来为多个包使用相同的数据源配置并区分生产/测试环境。我考虑过在构建期间使用Maven编写属性,具体取决于目标环境。关于如何解决此数据源问题,还有其他最佳做法吗?只是为了概览,项目布局如下所示:
我是OSGI的新手,我想弄清楚如何解决下面的错误org.osgi.framework.BundleException:bundleorg.foo.serviceBundle[253]中Unresolved约束:无法解决253.0:缺少要求[253.0]包;(&(package=org.slf4j)(版本>=1.6.0)(!(版本>=2.0.0)))我使用maven原型(prototype)生成一个包,并向我的Activator类添加了一些简单的slf4j日志记录。我也在使用mavenbundle插件,如下所示:org.apache.felixmaven-bundle-plugin2.2
我有一个作为OSGi包集合运行的应用程序。我使用嵌入Felix框架的非常小的包装器启动它。这个包装器的必要性让我有点恼火,因为它依赖于Felix(而应用程序本身可以在Equinox中运行得很好),所以我想摆脱它,并使用默认的Felix启动器。包装器真正做的唯一事情是将命令行参数传递到启动的OSGi框架中,以便那里的bundle可以对它们使用react。请注意,它实际上并不解析参数,只是将String[]推送到我的应用程序中。是否有一种标准方式(或者至少是一种Felix标准方式)从包中访问命令行参数,以便我可以取消自定义启动器? 最佳答案
我有一个简单的问题。我跟着这个tutorial并创建了一个HelloWorldosgi包。我如何使用apache安装和启动这个包Karaf?我如何使用osgi:install命令引用该包?谢谢。 最佳答案 您只需将bundle放入“部署”目录,Karaf就会注意到并安装它。 关于java-如何在apachekaraf中安装和运行osgibundle,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu
我目前正在尝试获取一个包含正在运行的服务工厂的简单包。这是我的工厂类:publicclassSvcFactoryimplementsServiceFactory{@OverridepublicServiceBgetService(Bundlebundle,ServiceRegistrationregistration){returnnewServiceBImpl();}@OverridepublicvoidungetService(Bundlebundle,ServiceRegistrationregistration,ServiceBservice){}}这是我的服务,应该由工厂创建
我们正在考虑在我们的企业环境中使用分布式OSGi。我们将有以下设置:许多主机上的10到100个OSGi容器提供各种服务。其中许多服务由多个容器提供。其中一些服务可能需要在所有服务中保持一致容器(部署相同版本)。在所有容器中管理bundle的生命周期(安装、启动、更新、停止、卸载)的正确方法是什么?几个要求:由于可能有很多容器,所以应该处理所有容器一起;即当我要更新一个包时,一个命令应更新该bundle已存在的所有容器。命令必须是可重复的:首先在测试系统上执行命令,然后在测试完成后在生产系统上重复完全相同的命令。我很感激关于上述问题的任何建议。最好的问候,马顿
我正在构建一个OSGI基础应用程序,在我的一个类中我进行了大量导入(大约30次),当我启动该应用程序时我得到这个异常:java.lang.ArrayIndexOutOfBoundsException:18ataQute.lib.osgi.Clazz.parseClassFile(Clazz.java:130)ataQute.lib.osgi.Clazz.(Clazz.java:65)ataQute.lib.osgi.Processor.analyzeJar(Processor.java:159)ataQute.lib.osgi.Processor.analyzeBundleClassp
我在工作中的最新项目中使用OSGi,它在模块化和功能方面非常漂亮。但我对开发工作流程不满意。最终,我计划有30-50个独立的包,排列在一个依赖图中——据推测,这就是OSGi的设计目的。但是我想不出一个干净的方法来在编译时管理依赖关系。示例:您有包A和B。B依赖于A中定义的包。每个包都作为单独的Java项目开发。为了编译B,A必须在javac类路径上。你:在B的构建脚本中引用项目A的文件系统位置?构建A并将jar放入B的lib目录?依靠Eclipse的“引用项目”功能,并始终使用Eclipse的类路径来构建(呃)对所有项目使用一个通用的“lib”目录,并在编译后将bundlejar转储到
$eclipse-console上述命令在不同的窗口中打开OSGi控制台和EclipseIDE。是否有任何选项可以将OSGi控制台引入Eclipse的控制台View中? 最佳答案 您可以只选择"HostOSGiConsole"在控制台View中。(您可能必须安装PDE才能在那里。) 关于java-如何在EclipseJuno中打开OSGi控制台?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que
我将STS(Spring工具套件)与EclipseLuna4.4一起使用,我注意到每次我尝试通过帮助->“安装新软件”我收到以下错误:Anerroroccurredwhilecollectingitemstobeinstalledsessioncontextwas:(profile=DefaultProfile,phase=org.eclipse.equinox.internal.p2.engine.phases.Collect,operand=,action=).Norepositoryfoundcontaining:osgi.bundle,org.eclipse.net4j.jms