问题标签 [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 投票
0 回答
1656 浏览

maven - karaf 3.0.1 没有启动

我正在尝试在 solaris 盒子(没有互联网)中启动 karaf 3.0.1,但出现以下错误:

karaf:忽略 KARAF_HOME 的预定义值无法解析 mvn:org.eclipse/org.eclipse.osgi/3.8.2.v20130124-134944

在 karaf.log 中:

2014 年 6 月 30 日下午 12:21:09 org.apache.karaf.main.Main 主要严重:无法启动框架 java.lang.RuntimeException:无法解析 mvn:org.eclipse/org.eclipse.osgi/3.8.2 .v20130124-134944 at org.apache.karaf.main.util.SimpleMavenResolver.resolve(SimpleMavenResolver.java:59) at org.apache.karaf.main.Main.createClassLoader(Main.java:315) at org.apache.karaf .main.Main.launch(Main.java:234) 在 org.apache.karaf.main.Main.main(Main.java:171)

捆绑包就位(系统文件夹)并且 org.ops4j.pax.url.mvn.cfg 文件状态:

org.ops4j.pax.url.mvn.repositories=\ 文件:${karaf.home}/${karaf.default.repository}@id=system.repository, \

文件:${karaf.data}/kar@id=kar.repository@multi\

http://repo1.maven.org/maven2@id=central ,\

http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release ,\

http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external

我尝试使用三种方法(服务器、服务、客户端)运行框架,但似乎没有任何效果。

我的环境是:

KARAF_BASE=/export/home/mehdi/bin/karaf

KARAF_HOME=/export/home/mehdi/bin/karaf

KARAF_ETC=/export/home/mehdi/bin/karaf/etc

KARAF_DATA=/export/home/mehdi/bin/karaf/data

JAVA_HOME=/opt/temp/jre1.7.0_13

我用谷歌搜索了一下,找到了一个解决方法,它说将 -h 127.0.0.1 添加到客户端脚本中,但仍然没有。

0 投票
2 回答
4040 浏览

osgi - 如何在 Karaf 3 中部署 .war 网络项目?

使用 Karaf 3,我可以部署 wab 项目和战争项目。我做了一个没有 OSGi 的 web 项目。我想在 Karaf 3 上部署它。怎么做?

使用 netbeans ,我从我的 web 项目中制作了一个 war 文件,并使用该文件在 Karaf 3 上安装了 .war 项目: bundle:install -s file:/path/myproject.war 我没有安装错误。但是当我去http://localhost:8181/myproject.

那为什么不行呢?问题是什么 ?

感谢您的建议和帮助,

0 投票
2 回答
7510 浏览

activemq - java.lang.ClassNotFoundException: org.apache.activemq.camel.component.ActiveMQComponent 未从包中找到 [camel-activemq]

我尝试将一个示例 activemq 应用程序部署到 karaf。在部署和启动捆绑包时,我收到了这个错误。请帮我解决这个问题。我已将所有必需的 activemq 组件安装到 karaf 中。仍然收到以下错误。

0 投票
1 回答
1391 浏览

java - 在 Karaf 中无法将 3rd 方 jar 作为 OSGI 包

我有一个 3rd 方 jar,没有源,用于连接到专有数据库系统。我相信 jar 实际上是一个 Eclipse 插件;它取自该系统的基于 Eclipse 的编辑器的 lib 文件夹之一。

无论如何,我正在尝试使用 Netbeans 7.4 和 Karaf 3.0.1 开发一个公开这个 jar 功能的包。只是试图将 jar 安装到 Karaf 中是行不通的——如果我将它放到部署文件夹中,它甚至不会出现在列表中,就像它不将其识别为 OSGI 包一样。我在 Netbeans 中创建了一个新的 OSGI Maven 包,将 jar 添加为依赖项,并尝试了各种着色方式,包括 in Bundle-ClassPath, Export-Package,但没有成功。在某一时刻,我以为我可以正常工作,但 Karaf 抱怨需要一些 Eclipse 需求。

我做了更多的挖掘,解压缩了罐子,第 3 方罐子的清单有这个:

于是我开始了实现这些依赖的兔子洞。基于 Maven 页面,我将这个 features.xml 文件放在一起:

现在,当我尝试安装时,我得到:

我认为这可能与Equinox vs felix有关?我只是使用默认的 Karaf 设置并使用内置的 Netbeans Maven 项目创建捆绑包,并且对于 OSGI 世界来说仍然相对较新。在大多数情况下,我可以启动并运行捆绑包,并为应用程序组合了一个基本集合,但是这个捆绑包取决于能够使用这个库,我正在努力寻找一种让它工作的方法。我想知道是否有一种方法可以解决 jar 的所有链接依赖项,或者以某种方式去除依赖于 eclipse 的任何内容?我想知道它是否只是与我正在寻找的连接无关的插件相关部分。

感谢您的任何想法。

编辑:添加有关 3rd 方 jar 的更多信息

jar 是供应商提供的,但来自一个现已不复存在的供应商。我不确定是否可以提供供应商详细信息,因此我将在此处隐藏特定的公司信息。所以这个jar被命名为“com.bigcompany.product.productbeans_4.3.1.jar”。jar 的完整清单如下所示:

在 Karaf 切换到 Equinox 相对来说没有什么痛苦,但是将罐子放入 Karaf 仍然没有出现在列表中。我尝试解压缩 jar,修改清单以删除 Require-Bundle 和 Eclipse-Autostart 行,重新打包并尝试安装它 - 那时它出现了,但我想要这个库的包仍然抱怨缺少要求 'com. bigcompany.product.productbeans'。

从那里我尝试重新部署尝试导入第 3 方包的捆绑包,并且当我尝试安装上面的功能文件抱怨缺少约束 - 功能文件中的捆绑包是否有必需的顺序?

我认为最终我希望的是有一种权威的方法可以将一个 jar(或者它包含 .class 文件?)嵌入或包含到一个需要它们的包中,并让它正常工作?我已经尝试了 Embed-Dependency,Bundle-Classpath(尽管我不确定我的语法或位置是否正确?),使用 maven shade 插件,或者我到达我的包说它缺少第 3 方包的地方,或者如果它没有给出它说它找不到 Eclipse 依赖项。如果我有一个非 OSGI 项目,maven 依赖项不会列出或包含任何与 eclipse 相关的依赖项。如果需要,我可以包含我的 POM 的片段或其他内容。

0 投票
2 回答
622 浏览

service - OSGI JavaMail 服务

我在将电子邮件会话声明为 OSGI 服务时遇到问题。我使用 Apache Karaf 3.0.1 作为容器,使用 Apache Aries 作为蓝图 JPA 和 JNDI 增强。

我有一个启用类型的错误,无法在类 javax.mail.Session 上找到匹配的方法以获取参数[{mail.smtp.host=mysmptpip, mail.smtp.port=25}]...

有谁知道这应该如何解决?

另外,我想知道如何通过 Apache 蓝图(将创建服务)将 JavaMail 会话声明为 JNDI 资源?

0 投票
1 回答
8500 浏览

maven - How to work with frequent local snapshot bundle deployments on Karaf?

I decided to build an application on top of OSGI and Karaf - I really like this stuff. However, I'm struggling a bit with a daily deployment on my local, development machine. I mean.. I make a change and then I would like to test it on my local Karaf instance. And it can happen like couple times per hour.

The way I'm doing it now is a maven build that creates a JAR bundle and then it's copied into the Karaf's deploy directory. I think that it isn't elegant at all.

I was trying to find a way around (google). I read about Karaf's features but it seems that despite the fact that it is a nice mechanism for deploying whole app, it doesn't solve my problem. As I understand it right, it does not check whether new version of my SNAPSHOT jar appeared in my local maven repo, right?

0 投票
1 回答
1689 浏览

osgi - 捆绑包中的卡拉夫缺失课程

我在 karaf 的部署文件夹中部署 httpclient-4.3.4.jar。在终端中,当我使用命令 find-class HttpClients 时,没有列出任何内容。当使用关键字 find-class HttpClient 时,我只为 httpclient 包加载了以下类。由于缺少某些类,我在我的一个依赖包中得到了 java.lang.NoClassDefFoundError: org/apache/http/impl/client/HttpClients 。

我需要知道为什么有些课程不可用。如果是我们自己的包,我们可以指定导入和导出来控制我们需要公开的类。但是对于外部罐子,为什么会发生这种情况?

httpclient (202) org/apache/http/HttpClientConnection.class org/apache/http/client/HttpClient.class org/apache/http/client/params/HttpClientParams.class org/apache/http/client/utils/HttpClientUtils.class org/apache/http/impl/AbstractHttpClientConnection.class org/apache/http/impl/DefaultHttpClientConnection.class org/apache/http/impl/SocketHttpClientConnection.class org/apache/http/impl/client/AbstractHttpClient.class org/apache/ http/impl/client/AutoRetryHttpClient.class org/apache/http/impl/client/ContentEncodingHttpClient.class org/apache/http/impl/client/DecompressingHttpClient.class org/apache/http/impl/client/DefaultHttpClient.class org/ apache/http/impl/client/SystemDefaultHttpClient.class

0 投票
1 回答
609 浏览

osgi - 我得到 404 未找到 | 从用户指南在 Karaf 3 中安装战争项目

我可以安装一个战争但不能测试它,为什么????

Karaf tuto我已经完成了:

karaf@root()> bundle:install -s "webbundle: http://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Web-ContextPath=/sample " 捆绑 ID:150 karaf@root()> 列表 |grep tom 150 | 活跃 | 80 | 0 | Tomcat样本

karaf@root()> 网络:列表

身份证 | 状态 | 网络状态 | 水平 | Web-ContextPath | 姓名

123 | 活跃 | 部署 | 80 | /样品 | Tomcat 样本 (0)

当我去 [http://loxcalhost:8181/sample] 它不工作,为什么???

0 投票
2 回答
2391 浏览

out-of-memory - Karaf 内存不足错误

我正在使用 Karaf 2.3.0 来部署我的 OSGi 激活器包并将我的远程服务公开为启用了 REST。这一切都很好。只有一次我在 karaf 日志(附加日志)上出现内存不足错误,之后我无法访问我的休息服务。当我在服务器崩溃一小时后进行堆和线程转储时(即使在 OOMemory 错误之后我的 karaf 进程仍在运行),我在转储中找不到任何大的东西。使用 jvisualvm(karaf 进程 Xmx-1024 MB)检查进程,内存和 cpu 消耗是最低限度的。但我无法访问我的任何服务。尝试访问服务会持续尝试几分钟而没有任何错误,直到超时。我也没有看到服务器日志打印出我访问的任何迹象.. 是' 一旦发生内存不足错误,该进程应该停止吗?我如何确定可能导致问题的原因?附上下面的日志

0 投票
2 回答
810 浏览

blueprint - Karaf 3.0.x config:update 命令不在 /etc 中创建 .cfg 文件

我将 karaf 3.0.1 与我的捆绑包一起使用(https://github.com/johanlelan/camel-cxfrs-blueprint-example)。我想在运行时管理属性,但我看到 config:update 没有在 /etc 上创建文件,为什么?

在 karaf 我尝试修改端点 url:

我确切地说我的包在 config:update 之后更新但 /etc 中不存在文件...我认为它适用于 karaf 2.3.5。