我使用eclipse开发了一个osgi应用程序(没有rcp)。它由几个插件项目包和来自eclipse插件文件夹(commons.*...)的依赖项组成应用程序在使用eclipse启动时运行良好。从Eclipse导出和部署此类应用程序的最佳方法是什么?有没有一种简单的方法可以导出我的启动配置?我找到的都是rcp项目。 最佳答案 您需要做的就是通过PDE(插件编辑器)虔诚地填写您的Manifest.MF,您必须在PDE的Dependecies选项卡中添加适当的插件依赖在运行时选项卡中填写类路径和导出包最重要的是,确保在构建选项卡中选中要
我们已经在我们的系统中使用JAXB2.1很长时间了。我们有一个使用Ant构建的平台,并生成一堆部署在OSGi运行时中的包。我们使用JavaSE6。我们在构建过程中使用JAXB从不同的模式生成数据类型。这些类打包在包中,并在运行时用于序列化/反序列化内容。此外,我们在运行时在我们的平台中使用JAXB从用户提供的其他模式生成数据类型(它是一种MDA平台)。在OSGi运行时中,我们有一个包,其中包含JAXBjar并导出必要的包。我们使用生成的所有对象工厂的上下文路径创建一个JAXBContext实例,因此我们可以编码/解码所有数据类型。到目前为止一直有效,但现在我们正在尝试升级到JAXB(2
我目前正在Felix(v4.0.3)上进行OSGi项目。我需要使用JPA,所以我安装了ApacheAriesJPA包。我还安装了OpenJPA,我需要它使用MySQLConnectorBundle连接到MySQL数据库。不幸的是它不起作用,OpenJPA说它找不到MySQLJDBC类,我无法弄清楚是什么坏了,也许我做错了什么。我将在下面解释我安装的内容以及persistence.xml文件和我得到的实际异常。这是我安装的ApacheAries包的列表:org.apache.aries.jpa.api-0.3.jarorg.apache.aries.jpa.container.conte
我在ApacheKaraf上部署了一个OSGi包。我有一条简单的Camel路线:wt=xml&rows=1000000&fl=nid,title&fq=sm_vid_Third_parties_with_which_this_organisation_s_content_can_be_shared:%22Indeed%22//int[@name='nid']-->我无法让它工作。当我调用http://localhost:8282/services时,它应该路由到setHeader下方指定的uri。相反,我得到了这个异常(exception):java.lang.
最近我遇到了getResourceAsStream方法的非常奇怪的行为。我有一个在Windows上开发的应用程序。此应用程序是基于OSGI框架的桌面应用程序。我创建了一个包,设置了所需的包并向这些包添加了一些数据文件,以便它们包含在jar文件中。我使用它加载数据:this.getClass().getResourceAsStream("pl/com/myapp/resource.dat");无论是在eclipse中还是在我部署我的应用程序并在IDE之外的系统上运行它时,它都运行良好。然后我将开发转移到ubuntu12.04。令我惊讶的是,上面提到的方法总是返回null。数据就在它应该在
我刚刚开始Apachesling和CQ5开发。在Sling中有使用OSGI包的概念。我无法了解sling框架实际上如何与这些bundle交互以及来自bundle的响应去向何处? 最佳答案 OSGi是Sling和CQ5产品使用的模块框架和服务平台。Sling本身由一系列托管在FelixOSGi容器中的包组成。Bundle是由容器管理的组件/服务和java类的集合组。bundle可以指定将导入、导出哪些包以及这些依赖项的版本。您可以通过多种方式与Sling中的OSGi进行交互。从JSP/JSP中,您可以使用sling对象(类型为Slin
我有一个包装在OSGI捆绑包中的JSR-356(WebSocketAPI)代码。如果需要,Servlet通过ApacheFelix加载代码。我想注册一个ServletRequestListener,我通常会将其放入Web描述符中:path.to.my.RequestListener但是,由于捆绑包在班级路径中不起作用。如何注册ServletRequestListener?我认为,扫描注释可能会有一种方法,但不确定如何进行设置。我的另一个问题是,许多用户可以禁用扫描以改善启动时间。听众的工作是初始化httpsession,以便我可以在WebSocket握手中检索ServletContext。如果
我一直在考虑一些关于osgi包内包结构的“良好实践”。目前,我们平均每个包有8-12个类。我的一项倡议/建议是有两个包;com.company_name.osgi.services.api(用于与api相关的类/接口(interface)(向外部导出)和一个包com.company_name.osgi.services.impl用于实现(不导出))。这有什么利弊?还有其他建议吗? 最佳答案 您还可以考虑将接口(interface)放在com.company_name.subsystem中,并将实现放在com.company_name
我是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标准方式)从包中访问命令行参数,以便我可以取消自定义启动器? 最佳答案