问题标签 [apache-karaf]

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 投票
3 回答
984 浏览

java - 使用 Spring 在 OSGi 中创建具有范围原型的对象的不同实例

这是一个复杂的问题,所以我会尽可能清楚地解释它。我有三个OSGi捆绑包A,B部署CApache Karaf. 我还有一个安全捆绑包,这些A捆绑包使用它BC

每个A,BCbundles 都包含以下内容:

Spring从安全包中获取安全处理程序的代码片段。安全包中的此处理程序作为OSGi服务公开并在安全包中创建,如下所示:

BasicAuthFactoryHandlerImpl#createSecurityHandler(String realm)用于为每个捆绑包创建不同的安全处理程序实例。如上面的代码所示,当createSecurityHandler方法被调用时,领域由包传递。Spring MethodInvokingFactoryBean

securityHandler Springbean 有一个原型,在这种scope情况下,每次调用该方法时,都会getBean返回一个新创建的对象。

我为安全处理程序设置的领域是这样的:

创建每个捆绑包的处理程序,一切都很好。但问题是所有捆绑包的领域在某种程度上与从第一个启动捆绑包传递的领域相同。我确信我Spring在不同捆绑包中的每个配置中传递了不同的领域,但领域总是来自第一个启动的捆绑包并且它无法正常工作。

有人知道问题出在哪里吗?

0 投票
2 回答
12303 浏览

apache-camel - 将 osgi-bundle 部署到 ServiceMix 的正确方法是什么?

我尝试为处理 Web 服务的 Apache ServiceMix 开发一个入门应用程序。

1)我构建应用程序(使用'mnv install'命令)

2) 将其部署到 ServiceMix(在服务器控制台使用 'karaf@root> osgi:install mvn:com.company/ws-test-fuse/1.0.0-SNAPSHOT' 命令)

3) 观察它是如何安装的 ('osgi:list')

4) 我尝试启动应用程序

我明白了:

安装包的正确方法是什么,以便自动下载和安装所有 Maven 依赖项?

另外,我是对的,所有依赖项也将作为 osgi-bundles 部署到 osgi-container 吗?

我的 POM.xml 如下:

0 投票
2 回答
1810 浏览

apache-karaf - 如何使用服务组合蓝图功能跨网络传输文件

我正在使用apache-servicemix-4.3.1-fuse-01-15并且正在进行热部署。

我在 service-mix 的 deploy 文件夹中放置了一个蓝图 xml,如下所示

如您所见,我想将文件从本地 pc 传输到另一台计算机。但是在日志中它给出了以下错误,尽管我可以访问 to 中提到的路径

如果我用我的本地目录路径替换 IP,它工作正常。

我很想知道这里出了什么问题。

我应该使用 ftp、sftps 还是 ftp。是不是我正在做的事情永远行不通。我需要提到用户名和密码吗?

0 投票
3 回答
6314 浏览

cxf - 如何使用蓝图配置 CXF JAX-WS 服务器

我想将一个简单的 CXF Jax-Ws 服务器部署到 ServiceMix。它只是一个同时具有服务接口和 impl 类的 OSGI 包。我需要将它部署到不同的 ServiceMix 服务器(版本 4.4.1),所以我需要更改每个服务器的 URL 地址。我想在 Karaf .cfg 文件中进行特定于服务器的配置,其余的在蓝图中进行。这不需要骆驼。我应该在蓝图中做什么?我找不到具体的文档。

0 投票
2 回答
326 浏览

spring - 带有 OSGi 捆绑 uri 的骆驼 xquery 端点

我有一个启动 Camel (2.10.0) 上下文的 OSGi 包(部署到 Karaf 2.2.4)。Camel 上下文的路由构建器有一些 xquery 端点 URI,例如

当上下文尝试解析该 URI 时,它失败了,因为 Camel 包与 .xq 文件所在的类路径不同。所以,我创建了一个 url 扩展函数

进入

因为我在处理(Spring 3.1.1)时处理了捆绑 URI 和OsgiBundleResourcePatternResolver项目的早期版本。ClassPathScanningCandidateComponentProvider不幸的是,我似乎找不到让 CamelXQueryComponent使用我的OsgiBundleResourcePatternResolver.

  1. 我会以正确的方式解决这个问题吗?有没有更简单的方法来做到这一点?
  2. 如果我是,我如何确保XQueryComponent可以理解bundle:URI?
  3. 另外,我是否可以确保任何骆驼组件都可以理解bundle:URI?
0 投票
1 回答
1057 浏览

jetty - 在 ServiceMix (OSGI) 下运行的 Jetty 中设置 ContextPath

这是我的环境背景。

我正在尝试通过使 MANIFEST.MF 如下所示将 myapp WAR 转换为 OSGi 兼容,并希望在 ServiceMix 中部署此战争基于 OSGi 的容器。

清单文件

ContextPath 被设置为 null,我应该在哪里设置 contextPath 以及如何设置?您可能会在 FileNotFound Exception 中观察到“null”字符串。

日志:

我在 myapp 中的 web.xml 是:

是 myapp 或 jetty 或 serviceMix 的问题吗?有什么线索吗?

0 投票
1 回答
930 浏览

eclipse - 在 Eclipse 中调试 Karaf 包:坚持 dev:watch URLs/IDs?

我希望能够从 Eclipse 轻松调试在 Apache Karaf 中运行的 OSGi 包。到目前为止,我确定的最简单的方法是创建一个启动 Karaf 的 Java 应用程序启动器。如果之前安装了包,那么我可以设置断点,即使在激活器中,一切都很好。

问题是,当对代码进行更改时,调用 mvn install,然后调用 Eclipse Karaf 启动器,我正在运行捆绑包的旧缓存版本。我玩过从命令行运行 Karaf,使用 Maven URL 安装我的包,并成功使用 dev:watch。但我发现 dev:watch URL 没有保留。因此,当从 Eclipse 启动 Karaf 时,没有观察到的 URL(以前的 URL 在 Karaf 关闭时丢失)并且没有安装新版本的包。

有没有办法让 dev:watch URL 持久化?我寻找可能包含 URL 的属性,甚至是可用于指定 URL 的 Karaf 命令行选项,但没有运气。我什至尝试将 dev:watch 命令添加到 etc/shell.init.script,但我在 Karaf 启动时收到此消息“初始化脚本错误:找不到命令:dev:watch。” 我认为这意味着该命令在 Karaf 启动序列中运行得太早(开发功能尚未启动?)。

任何帮助都将不胜感激,即使是我没有考虑过的其他方式来轻松调试在 Eclipse 中运行在 Karaf 中的包。目标是避免每次代码更改时都需要使用手动命令,例如 osgi:install。

0 投票
1 回答
1108 浏览

java - 骆驼 | 需要调度控制台

我在我的项目中使用骆驼 2.9.0。我们有许多路线分为不同的骆驼上下文。每个骆驼上下文都单独捆绑并部署在 Apache Karaf 中。现在问题分为两部分:

1.) 每条路线都是预定路线。虽然使用 Quartz 组件,但我们能够在每个路由中定义一个 cron 表达式,我们需要一个控制台,我们可以在其中触发、停止任何路由并将 cron 表达式放入任何路由。(通过 Web 控制台调度路由是我们的主要目标)。

2.) 我们还尝试通过quartz.property 为每条路由配置cron 表达式。但是如果有人想在运行时更改 Apache Karaf 中的 cron 表达式,那么我们必须停止部署的包并重新开始。如何在运行时更改 cron 表达式的值。

任何答复和帮助将不胜感激。

皮尤什

0 投票
0 回答
470 浏览

osgi - 蓝图路线部署的卡拉夫酒窖抛出异常

我按照下面给出的 Karaf Cellar 示例进行操作, http://blog.nanthrax.net/2011/11/apache-karaf-cellar-and-dosgi/

我创建了 3 个 OSGi 包,即服务 (Bundle1)、服务实现 (Bundle2) 和客户端 (Bundle3)。我有 2 个 karaf 容器在不同的机器上运行,其中(Bundle1)和(Bundle2)部署在一个 karaf 实例上,(Bundle1)和(Bundle3)部署在另一个 karaf 实例上。正如示例中给出的那样,每件事都运行良好。我从 Karaf container2 中删除了客户端捆绑包,并希望通过蓝图中描述的骆驼路由调用服务。

在 karaf container2 中部署上述蓝图后,我在 karaf 容器 1 中看到以下异常。我无法找出此错误的来源。对此问题的任何评论表示赞赏。

谢谢你。

0 投票
1 回答
366 浏览

java - Eclipse 之外的 OSGi 包

我使用 Eclipse Indigo 使用 OSGi Java 框架开发了一些包。有一个 Main Bundle,它依赖于其他 bundle 并且具有要运行的主程序。NoClassDefFoundError如果我尝试在 Eclipse 中运行所有包,一切正常,但如果我将每个包保存为 JAR 并在命令行中启动 OSGi 框架,我在尝试启动主包时遇到异常。找不到的类是依赖项。捆绑包的其余部分获得状态 ACTIVE,主捆绑包刚刚解决。

我已经创建了一个包含我正在使用的所有库(mysql 连接器等...)的包,并且我将这个包导入到我需要这些库的每个包中。我不知道这是否是实现它的最佳方法。另外,我在我的应用程序中使用线程,其中一些使用来自不同包的方法,这可能是问题的根源吗?

有谁知道我能做什么?我还必须在 Apache Karaf 中安装捆绑包,我得到了相同的结果。它与每个捆绑包的起始级别有关吗?