问题标签 [apache-felix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 OSGi (Apache Felix) 中注册服务?
我已经成功地从代码中启动了 Apache Felix 并注册了一个自己的 Bundle。
需要以下 OSGI 项目之间的关系:
[OsgiInterface]
-- 提供接口。
[OsgiModuleA]
-- (bundle) 提供这些接口的实现。
知道[OsgiInterface]
[OsgiUsage]
-- 使用一个或多个捆绑包。
知道[OsgiInterface]
并且[OsgiModuleA]
现在我在注册实现接口的服务时遇到问题。我猜我在manifest.mf
文件中的条目是错误的。
附加信息
如果有人可以查看我上一个问题中的代码,那就太好了
让我参考一下这个问题:
我试图创建第三个项目OsgiInterfacesSomeInterface
,它在包中提供了一个接口interfaces
。OsgiModuleA和OsgiUsage都知道这个项目。
OsgiModuleA: manifest.mf
现在interfaces
为 entry增加了一个值Import-Package:
。此外,还有一个SomeInterface
提供给激活器的实例。
当捆绑包启动时,NoClassDefFoundError
会发生:接口SomeInterface
未知。
编辑:
现在,错误已修复,我可以说,最重要的部分是:
没有这个,我得到了ClassCastException
.
maven-2 - 对包的传递依赖?
当bundle
用作 Maven 工件的包装时,我似乎丢失了有关传递依赖的所有信息。因此,如果工件 A 依赖于工件 B 并且 B 被打包为捆绑包,则 A 看不到 B 具有的 maven 依赖项。这会导致 A 的 POM 中使用的需要此信息的 maven 插件出现很多问题(例如 maven-dependency-plugin 或 maven-eclipse-plugin)。我发现的唯一解决方法是将依赖项嵌入到包中(在 felix 包插件的配置中使用 Embed-Dependencies)。我不想这样做,但是,我想将它们保存在自己的文件中。还有另一种解决方法吗?
netbeans - Netbeans 和 osgi 捆绑开发
我即将使用 netbeans 6.8 和 felix 2.0.4 启动一个 OSGI 项目;任何人都可以为我提供快速入门的提示和/或链接吗?
提前致谢。
java - 如何分析 OSGi 部署的执行?
我正在开始为一个应用程序开发一个 OSGi 包,该应用程序将部署在具有一些硬件限制的设备中。我想知道如何分析该捆绑包的执行情况,以始终确保它符合最终设备中的依赖关系。最好有一个分析器来了解每个捆绑包使用了多少内存、定位瓶颈并比较同一服务的不同实现。
是否有任何用于 OSGi 部署的分析器,或者我应该使用通用 Java 分析器吗?
对于开发,我使用 Pax runner 和 Apache felix 来运行包和 maven 来管理项目依赖项和构建。
osgi - 使用 OSGi HTTP 服务启动 Wicket Web 应用程序
我正在尝试使用 OSGi HTTP 服务的 Felix 实现来启动 Wicket 应用程序,为此我只需使用WicketServlet
withapplicationClassName
参数注册服务:
我还尝试使用 Felix Whiteboard 实现并将 Web 服务注册为Servlet
一个:
在这两种情况下,当我使用 Pax Runner 和 Felix ( ) 部署它时,它都会失败mvn package install pax:run -Dframework=felix -Dprofiles=log,config
,异常似乎与ClassLoader
:
我试图导出捆绑包中的所有内容,它也是如此。
最奇怪的是,如果我使用 Equinox ( mvn package install pax:run -Dframework=felix -Dprofiles=log,config
) 部署它,它可以完美运行。
这似乎是一个可见性问题,但我不知道如何解决它,我做错了什么吗?我应该尝试扩展WicketServlet
以控制应用程序的实例化吗?或者也许使用应用程序工厂?
更新:或者也许使用应用程序工厂?
我试图将参数设置applicationFactoryClassName
为ContextParamWebApplicationFactory.class.getName()
它并没有帮助,仍然无法使用 felix 并使用 Equinox。
欢迎任何光线。
tomcat - 无法理解整个 OSGi web 生态系统
我对整个 Java 和 OSGi 世界还很陌生,我很难理解 OSGi Web 应用程序的生态系统。
更准确地说,我目前正试图了解生态系统的所有部分是如何相互关联的:
- OSGi 框架(例如 Apache Felix、Equinox、Knoplerfish)
- OSGi 运行时(例如 Spring DM Server、Pax Runner、Apache Karaf)
- Web Extender(例如 Pax Web Extender、Spring Web Extender)
- Web 容器(例如 Apache Tomcat、Jetty)
为了让您直观地了解我对他们关系的实际理解,请查看这张图片:
据我所知,OSGi 框架是 OSGi 规范的实现。运行时是一个发行版,它在 OSGi 规范之上添加了额外的功能,例如日志记录。由于 OSGi 和 Web 容器(如 Tomcat)的类路径机制似乎存在一些差异,因此您需要某种翻译器。这部分由“Web Extender”处理。
请您为我澄清这一切好吗?我理解的一切正确吗?
osgi - Knopflerfish packaging
I am at the moment creating a matrix which is showing how far Knopflerfish, Equinox and Felix are OSGi 4.2 compliant.
So far I looked at the Knopflerfish documentation (Link 1, Link 2) to get an idea of how much of the Core and Compendium specs are actually implemented.
The core specification seems to be fully implemented, although there are some inconsistent statements about the Security Layer and the Declarative Services.
What makes me wonder is how much of all the Compendium specs are implemented:
- Remote Services
- Log Service
- Http Service
- Device Access
- Configuration Admin Service
- Metatype Service
- Preferences Service
- User Admin Service
- Wire Admin Service
- IO Connector Service
- Initial Provisioning
- UPnP Device Service
- Declarative Services
- Event Admin Service
- Deployment Admin
- Auto Configuration
- Application Admin
- DMT Admin Service
- Monitor Admin Service
- Foreign Application Access
- Blueprint Container
- Tracker
- XML Parser Service
- Position
- Measurement and State
- Execution Environment
To find out more I downloaded (Download page) the source code of Knopflerfish and had a look at it. It looks like some parts of the spec are implemented through the "original" framework provided by the OSGi Alliance (org.osgi.*).
One example is the UPnP package:
alt text http://img6.imageshack.us/img6/5853/screenshot20100403at212.png
Does this mean that missing parts which are not directly implemented by Knopflerfish are added through the "original" OSGi framework?
And does this also apply to other frameworks like Felix or Equinox?
java - com.sun.management.OperatingSystemMXBean 在 OSGi 包中的使用
我有一些遗留代码用于监控我的应用程序 cpu、内存等,我想将其转换为捆绑包。现在,当我启动这个捆绑包时,它会抱怨
我曾使用 OperatingSystemMXBean 来访问 JVM 上的统计信息。
我的问题是我可以在 OSGI 容器中使用这个类吗?如果可以,如何使用?或者我应该使用其他方式来监控我的应用程序。我正在从 Web 前端对应用程序进行 RMI 调用,以获取 OSGi 之前的节点性能数据。
java - felix 上的 OSGI 类广播异常
我对 osgi 还很陌生,正在尝试一起获得功能性的概念证明。
设置是我的通用 api 是在一个创造性地命名为 common-api.jar 的包中创建的,没有包激活器,但它导出了它的所有接口。对这种情况感兴趣的是 DatabaseService.java。
然后我有一个名为 systemx-database-service 的第二个捆绑包。这实现了数据库服务接口。这工作得很好,因为在实现包的激活器中我测试了与数据库的连接并选择了一些任意值。我还注册了我希望其他捆绑包可用的服务,如下所示:
基本思想是,当您查找数据库服务的服务参考时,您将获得 SystemDatabaseService 实现。
当我进行检查服务时,输出如下:
这会让我相信,如果我在测试包中这样做:
我应该取回 DatabaseService.class 的实例,但可惜没有这样的运气。它似乎无法找到该服务。坚持我这里我的故事变得陌生。
想着无处可去,但我写了这个怪物:
现在我实际上可以看到服务参考,但我收到了这个错误
这很疯狂,因为实现清楚地实现了接口!
任何帮助,将不胜感激。请记住,我对 osgi 的思维方式非常陌生,所以我的整个方法可能存在缺陷。
哦。如果有人想要清单,我可以发布它们。我正在使用 maven-bnd-plugin 在 felix 上构建和执行。
谢谢
尼科
java - NoClassDefFoundError: HttpClient 4 (APACHE)
我正在使用 apache http commons 4。我在 netbeans 的类路径中添加了 httpcore-4.0.1.jar 和 httpclient-4.0.1.jar。我收到错误:
java.lang.NoClassDefFoundError: org/apache/http/impl/client/DefaultHttpClient
我的代码如下。请帮忙。