Tag: osgi

片段内的组件从未激活

当我使用OSGi声明式服务方式在片段内创建组件时,此组件未被激活,但主机包中的组件被激活。 我错过了什么吗? 我的片段具有适用于主机包符号名称的meta-inf文件条目。 我以这种方式宣布一个组件 @Component(immediate = true)

使用SSH的Apache Felix shell

我对如何使用Apache Felix和SSH感兴趣? 我想使用SSH从远程计算机访问Felix shell。 我知道有一个telnet支持,但它太不安全了。 有什么解决方案吗?

Struts 2是否可用作OSGi捆绑包?

我有一个服务器应用程序,包含多个OSGi包,一些是我的,一些是第三方。 其中一个bundle使用Struts提供Web前端。 必要的Struts库位于Web前端包中。 现在我想添加第二个包,它提供另一个Web前端,具有不同的依赖关系和一个非常不同的用例。 我也希望将Struts用于该捆绑包,但我不想将相同的库放入两个捆绑包中。 使用OSGi,将Struts库分离为自己的捆绑包并使用我的捆绑包中的那些应该没有问题。 但是,我找不到那种方式打包的Struts。 一些快速的谷歌搜索和看看Struts主页没有产生任何东西。 我可以找到一个Struts插件来在Struts中运行一个OSGi容器,但这不是我想要的。

将Equinox OSGi集成到Apache Tomcat Web应用程序中

是否有可能将osgi-equinox引入现有的Java Apache Tomcat项目? 根据我的理解,OSGI必须在某种“容器”中运行。 我该如何整合它? 我也在使用Jersey来获取RESTful资源。

无法加载或实例化TagLibraryValidator类:org.apache.taglibs.standard.tlv.JstlCoreTLV

所以我在Gemini运行时的OSGi中使用JSTL。 当我尝试访问我的servlet的url时,我得到以下exception: – SEVERE: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /WEB-INF/login.jsp (line: 3, column: 66) Unable to read TLD “META-INF/c.tld” from JAR file “file:/D:/OSGi%20Runtime/Gemini/gemini-web/dep/com.springsource.javax.servlet.jsp.jstl-1.2.0.v20110728.jar”: org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV 但是,我已经检查过,我已经在运行时拥有所有必需的包。 我拥有的相关捆绑包是: – 71 ACTIVE javax.servlet_3.0.0.v201103241009 73 ACTIVE javax.el_2.2.0.v201105051105 74 ACTIVE javax.servlet.jsp_2.2.0.v201103241009 75 ACTIVE com.springsource.javax.servlet.jsp.jstl_1.2.0.v20110728 121 ACTIVE com.springsource.org.apache.taglibs.standard_1.1.2.v20110517 有更多的捆绑包,但那些是相关的。 所以,我无法理解出了什么问题。 从Spring […]

包含OSGi捆绑包的其他资源

我正在开发一个OSGi包,它实现了一个服务作为本机可执行文件的包装器。 也就是说,该服务使用ProcessBuilder运行可执行文件,为其提供一些数据,并检索结果。 我的问题是打包这个包的最佳方法。 本机可执行文件包括许多依赖数据文件,这些文件必须全部存在于磁盘上才能运行该工具。 我发现有很多关于在OSGi中处理本机DLL的引用,但是没有一个引用与必须存在于磁盘上的bundle相关联的文件,而不是只能通过类路径检索。 我想我可以直接在bundle archive中包含exectuable和dependent文件,然后在bundle启动时以编程方式提取到某个目录。 我能想到的另一个选择是将可执行文件放在某处并设置指向它的系统属性,但我希望将配置保持在最低限度。 一个不是特定于特定OSGi实现的解决方案会很好,但如果没有,我会使用Equinox。 谢谢!

OSGI有效版本范围

目前我正在尝试实现OSGI版本范围(针对不同的主题,但我喜欢他们定义版本范围的方式)。 但是我很难在OSGI中找到版本范围的具体定义。 不幸的是,OSGI API确实包含Version类,但不包含VersionRange类。 似乎所有OSGI容器都提出了自己对(有些不可修复的)版本范围定义的解释。 因此我有几个问题: 如果我使用versionRange=1.4.0 ,这会映射到Version> = 1.4.0吗? 这是一个有效的版本范围: versionRange=[1.0.0,0] :我会说是(版本1.0.0到任何版本),Eclipse实现接受它作为版本但不能正确处理它。 这是一个有效的versionRange以及: versionRange=[1.0.0,0) ? 所有这些问题的真实来源在哪里? 我似乎无法找到它。

在IntelliJ IDEA 11中运行Apache Felix 4.0.2

根据这篇文章 ,IDEA使用Osmorc来运行OSGi框架。 反过来,它使用Pax Runner来启动不同的框架实现。 IDEA 11中的工具链只能运行Apache Felix 3.0.2,但我必须运行4.0.2版本。 可能吗? IDEA还有其他OSGi框架发射器吗?

eclipse库包 – 无法从某些库中导出包

我在eclipse 3.5中创建了一个简单的插件项目,它只存储第三方库,供eclipse RCP应用程序中的其他bundle使用。 按预期工作:我编辑了清单,导出了所需的包,并将库添加到构建路径(项目构建路径以及清单构建路径)。 几天后,我向该项目添加了另一个jar,执行了相同的步骤(导出包,将库添加到构建路径)但这次我无法从其他包中的导出包中导入类。 可以在清单编辑器上清楚地选择包,但是类中的import语句只是用红色的红线来嘲笑我。 从包导出的其他包导入类仍然有效,只有新添加的lib中的类保持不可见。 有没有人知道我可能错过了什么? 我很困惑,不知道如何说服谷歌向我展示这个丑陋问题的解决方案……

按属性搜索OSGI服务

如何通过属性区分已发布的OSGI服务实现相同的接口?