问题标签 [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.

0 投票
2 回答
797 浏览

ant - 通过 Ant 将包部署到 Apache Felix?

假设我有一个有效的 Ant 构建脚本,它打包并准备了我的 OSGi 包。

现在,我想让构建过程将捆绑包安装/更新到我的本地 Felix 安装作为最后一步,并且 - 如果可能,如果默认情况下未启动,则自动启动。

任何人都知道如何做到这一点?

我正在考虑制作一个简单的 Ant 插件来包装发送到某个 shell 的系统控制台命令,但是有没有更好的方法来做到这一点?

0 投票
1 回答
1966 浏览

jetty - 使用 pax web 在 OSGI 容器中部署 Web 应用程序时出错

您好,我正在尝试在 Felix 容器中部署 Web 应用程序。我已经使用我的 Web 应用程序完成了所有必需的配置,例如设置清单标头: Webapp-Context: Bundle-ClassPath: Bundle-Activator: Import-Package: Bundle-SymbolicName: 等等 我在相同的容器是:pax-web-service-0.6.0.jar pax-web-jsp-0.7.1.jar pax-web-extender-war-0.7.1.jar pax-logging-service-1.5.0.jar pax-logging-api-1.5.0.jar

尽管在 pax 网站上已经写到 pax-web-service 包含在 pax-war-extender 中,但似乎没有 pax-web-service 捆绑包,所有其他捆绑包都会受到影响。

我已经删除了其他 pax 捆绑包,例如 pax-web-extender-whiteboard-0.7.1.jar pax-web-jetty-0.7.1.jar,因为我没有看到它们的任何用处。

pax-web-jetty-0.7.1.jar 甚至无法启动。它具有无法从 PAX 提供的任何捆绑包中解析的依赖项。

我的浏览器显示:HTTP ERROR 403

访问 /adminmodule/ 时出现问题。原因:

禁止

由码头提供支持://


而控制台日志说:

[5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 在 org.mortbay.jetty.HttpConnection@1e94001 上请求 /adminmodule/ [5884890@qtp-16567002-0 - /adminmodule/] 调试组织。 ops4j.pax.web.service.internal.model.ServerModel - 匹配 [/adminmodule/] ... [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.model .ServerModel - 路径 [/adminmodule/] 匹配 {pattern=/adminmodule/.*,model=ResourceModel{id=org.ops4j.pax.web.service.internal.model.ResourceModel-2,name=,urlPatterns=[ /],alias=/,servlet=ResourceServlet{context=/adminmodule,alias=/,name=},initParams={},context=ContextModel{id=org.ops4j.pax.web.service.internal.model.ContextModel -1,name=adminmodule,httpContext=org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext@11710be,contextParams={webapp.context=adminmodule}}}} [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.HttpServiceContext - 使用 http 上下文 [org.ops4j 处理 [/adminmodule/] 的请求.pax.web.extender.war.internal.WebAppWebContainerContext@11710be] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - sessionManager=org.mortbay.jetty.servlet.HashSessionManager@19c6163 [5884890 @qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - session=null [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - servlet= [5884890@qtp-16567002- 0 - /adminmodule/] 调试 org.mortbay.jetty -chain=org.ops4j.pax.web.service.internal.model.FilterModel-3-> [5884890@qtp-16567002-0 - /adminmodule/] 调试组织。 mortbay.jetty - servlet holder= [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 调用过滤器 org.ops4j.pax。web.service.internal.model.FilterModel-3 [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.WelcomeFilesFilter - 应用欢迎文件过滤器... [5884890@qtp -16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.service.internal.WelcomeFilesFilter - Servlet 路径:/ [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web。 service.internal.WelcomeFilesFilter - 路径信息:null [5884890@qtp-16567002-0 - /adminmodule/] INFO org.ops4j.pax.web.service.internal.HttpServiceContext - 获取资源:[/adminmodule.jsp] [5884890@ qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 搜索捆绑包 [com.cisco.zaloni.gwt.admin [1]] 以获取资源 [/adminmodule.jsp ],标准化为 [adminmodule.jsp] [5884890@qtp-16567002-0 - /adminmodule/] DEBUG org.ops4j.pax.web.extender.war。internal.WebAppWebContainerContext - 找不到资源 [5884890@qtp-16567002-0 - /adminmodule/] 信息 org.ops4j.pax.web.service.internal.HttpServiceContext - 找到资源:空 [5884890@qtp-16567002-0 - /adminmodule /] 调试 org.mortbay.jetty - 调用 servlet [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 搜索包 [com.cisco.zaloni. gwt.admin [1]] 用于资源 [/],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 找到资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应 /adminmodule/ 403HttpServiceContext - 找到资源:空 [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 调用 servlet [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web。 extender.war.internal.WebAppWebContainerContext - 为资源 [/] 搜索捆绑包 [com.cisco.zaloni.gwt.admin [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试组织.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应/管理模块/ 403HttpServiceContext - 找到资源:空 [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 调用 servlet [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web。 extender.war.internal.WebAppWebContainerContext - 为资源 [/] 搜索捆绑包 [com.cisco.zaloni.gwt.admin [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试组织.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应/管理模块/ 403资源 [/] 的管理员 [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应 /adminmodule/ 403资源 [/] 的管理员 [1]],标准化为 [/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext - 资源作为 url [bundle://1.0:1/] [5884890@qtp-16567002-0 - /adminmodule/] 调试 org.mortbay.jetty - 响应 /adminmodule/ 403

这真的很令人沮丧。

请帮忙。因为我是 OSGI 的新手。

劳尔

0 投票
2 回答
3760 浏览

java - 在 Apache Felix 中禁用缓存

我正在尝试按照此线程(http://osdir.com/ml/dev-felix-apache/2009-05/msg00051.html)中的说明禁用 felix 中的文件系统包缓存。我在网上找不到具体的例子。

有人可以帮我吗?这真的有效吗?

提前致谢。

克劳斯。

0 投票
1 回答
1016 浏览

java - 将数据传递给 OSGI 包

我不知道该线程中的讨论仍然相关多远,但我无法从 Felix 读取系统属性BundleActivator

这对那里的任何人都有效吗?或者有人可以帮我弄清楚发生了什么吗?

0 投票
5 回答
2806 浏览

java - OSGi捆绑清单中Bundle-Classpath的字符限制?

使用 Apache Felix,我编写了一个 OSGi 组件,它封装了我公司使用的一些中间件。目前它依赖于大量的外部库,我似乎遇到了 Bundle-classpath: 参数长度的限制。我不得不将诸如 commons-collections.jar 之类的库重命名为 ccoll.jar。

我很好奇是否有人对解决此限制有任何建议?

我想我可以通过省略 lib/ 位来获得更多字符,但我很好奇这是否是一个错误、一个明确的限制,或者只是我的白痴。

0 投票
2 回答
2662 浏览

osgi - maven2 生成的在 ServiceMix 中运行的 osgi-bundle 中的 Package-Resolution (Import-Export) 问题

我在 pom.xml 中有一个使用以下配置的包:

当我将它部署到 ServiceMix(我的 OSGi 容器)时,它会起作用并被激活。在我的另一个 OSGi 包中,我尝试使用在上层包中定义的类。配置如下所示:

当我尝试激活第二个捆绑包时,我在来自 ServiceMix 的 Karaf 控制台上收到以下错误:

我还尝试使用 de.samba.common 作为导入和导出,以及每个单独的包声明。我没有得到什么?如何让第二个捆绑包看到第一个捆绑包中的类?

0 投票
1 回答
134 浏览

java - 如何从我的 Java 代码中使用 Apache Felix?如何添加 Maven POM 代码?

我想以嵌入式模式启动 Felix。我想用一个 Maven 构建来做到这一点。

我需要向我的 pom.xml 添加什么 maven 以允许 Felix 在嵌入式模式下运行?

我需要将哪些代码添加到我的应用程序中?

谢谢,菲利普

0 投票
1 回答
3240 浏览

osgi - 如何让 Spring Dynamic Modules 2.x 在 Apache Felix Karaf 上工作?

我们开始在一个项目中使用 Apache Felix Karaf,并使用 Blueprint Services。

现在,我想使用 Spring Dynamic Modules 来访问高级 DI 功能和测试功能。问题是我无法弄清楚如何让 Spring DM 2.x 在 Felix 上运行。

安装了 spring 和 spring-dm 功能:

但是为了使用蓝图服务,我需要 Spring DM 2.x(至少根据 Spring 网站,“对于蓝图服务 RI,请使用 2.x+版本。”)。

我看到可以向 Apache Felix 添加功能,但据我了解,这需要在某个存储库上声明 features.xml 文件。

我的问题是,是否有更简单的方法,也可以更集成(例如通过 Maven)

0 投票
2 回答
1153 浏览

java - Felix 不喜欢 javax.script

我正在使用 javax.script 包编写一个 OSGI 包,并且在让 Felix 正确加载包时遇到了一些问题。尝试启动捆绑包时,我得到:

org.plugin.script.plugin-scripter [2] 的包启动失败:org.osgi.framework.BundleException:包 2 中未解决的约束:包;(包=javax.script)

我认为当我们尝试引用未正确加载到包中的包时会发生这种情况。我相当肯定这是因为 javax.script 仅从 1.6 开始捆绑到 JDK 中,并且出于某种原因,Maven 正在使用其他东西进行构建。到目前为止,我已经:

一个。通过以下方式在我的 Maven POM 中为 Felix 设置必要的导入:

湾。将 Maven 编译器设置为 1.6,因为这是我们获得 javax.script 的最早版本

C。甚至不确定这是否会有所不同,但我将 Felix 的框架属性(在他们的 config.properties 中)设置为 1.6.0 并包含 javax.script 导出。TBH 我不确定这个,但我想我会试一试。

仍然是nadda tho。我还错过了什么?

0 投票
4 回答
2269 浏览

java - 奥斯吉 getService()

在我们的项目(Osgi、Spring-Dm、Apache-Felix)中,当 BundleContext.getService() 返回 null 时,我们在生产中遇到了一些问题。它很少发生,而且不是一开始就发生,所以这不是配置错误的问题。

另一种方法是使用 ServiceTracker 来定位服务,但由于该错误非常罕见,我不确定更改它是否能解决问题。