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

java - 在 Karaf 的 JAX-RS 包上使用 Spring Security

我有一个 OSGi 包,它使用 JAX-RS 来处理一些 REST 服务。此捆绑包在带有 Apache CXF 的 Karaf 中运行。我需要对某些路径/方法组合应用基本的 http 身份验证。我一直在修改 Spring Security,似乎新的 3.1 版本可以让你做到这一点,但是我在 OSGi 中让它工作时遇到了很多麻烦。

作为一个测试,我创建了一个非常简单的beans.xml文件:

现在,有趣的部分来了……从我一直在做的所有阅读中,我需要一个web.xml才能使所有这些工作。例如我尝试使用的这个示例:

使用这两个文件的组合不起作用。“没用”,我的意思是什么都没发生。没有错误消息,没有异常,捆绑包的功能就像我尝试添加弹簧安全性之前一样。我假设问题是捆绑需要是 WAR 或 WAB 才能加载 web.xml。这个对吗?

更重要的是,有没有办法让 spring 在没有 web.xml 的情况下工作?

我正在假设我需要将捆绑包保留为捆绑包以供 CXF 加载,因此我无法将其转换为 WAR 或 WAB,但我不完全确定是这种情况。

感谢您的任何帮助,您可以提供!

更新: 在做了一堆额外的谷歌搜索之后,我发现一个论坛帖子提到添加Web-FilterMappings: springSecurityFilterChain;url-patterns:="/*"到你的清单而不是使用 web.xml。但是,您似乎仍然需要使用 WAB 而不是普通捆绑包。我已将该行添加到我的清单中以防万一,但它没有效果。看来我的问题正在变成:如何将 WAB 与 CXF 一起使用?

更新2: 因为这个问题不够长......我决定尝试使用Spring Security注释而不是intercept-url来看看会发生什么。当我尝试访问安全路径时,我得到了这个有趣的堆栈跟踪:

spring 网站说,第一次尝试匿名连接到安全服务时会发生这种情况,第二次不会发生这种情况。好吧,它每次都发生在我身上。从例外情况来看,我在清单的条目似乎正在被提取,并且问题可能与我想象的不同。有人对为什么会这样有任何想法吗?我是否缺少 beans.xml 中的一些条目以使基本的 http auth 工作?

0 投票
1 回答
6018 浏览

log4j - 登录到 Apache Karaf 的附加文件

我有一个同时使用 Apache Camel 和 Karaf 的系统。

我需要一些特定的处理器来登录一个新的日志,而不是默认的,karaf.log。

我发现有一个名为“org.ops4j.pax.logging.cfg”的文件负责记录配置。

这是我弄乱它之前的文件:

现在我添加了一个额外的 File appender:

从 Camel ,我从 DSL 登录:

现在的结果是将所有内容都记录在“new.log”和“karaf.log”文件中。

问题是:我如何登录“new.log”以防万一特定处理器。其他人将登录到 karaf.log !

0 投票
3 回答
6611 浏览

java - OSGi 包从另一个包访问 Spring 上下文文件

我有一个作为多个 Spring 项目存在的现有应用程序。项目 A 的 Spring 上下文 XML 文件使用

但是,我得到一个FileNotFoundException. 我认为这是由于项目 B 的捆绑包未公开资源这一事实造成的。我可以访问类,但不能访问文件。

在研究这个问题时,常见的评论是使用 OSGi 服务并注入服务,而不是尝试直接注入 bean。但是,由于这是一个现有的应用程序,我想避免重新布线整个事情。

有没有办法告诉 OSGi 导出资源?我在 Karaf 上运行 ServiceMix。

0 投票
2 回答
2692 浏览

java - OSGi SOAP Web 服务客户端

我试图让一个从 OSGi 工作的 Web 服务客户端,我使用 Felix 作为我的容器。

到目前为止,我已经尝试过使用 Apache CXF。这不适用于我的 Web 服务,因为它是 RPC/编码的,并且在我尝试生成存根时不受支持。我使用 apache Axis 来生成我的存根,现在我在我的包中遇到了与依赖项有关的问题。当我的包被部署时,我得到了 apache 包的依赖项。

我在构建中使用了 maven,并使用了具有 bundleall 目标的 maven-bundle-plugin 来获取依赖包,但仍然遇到包依赖项的问题。我真的很想使用 osgi,因为通过 bundles 的可插拔特性正是我所需要的,但是我花了很多时间来追踪 bundle 依赖项。

是否有使用 OSGi 的 SOAP Web 服务的明确示例,包括如何解决依赖关系?

0 投票
4 回答
4257 浏览

java - 高效的 OSGi 开发工作流程

我开发的产品由许多捆绑包组成,这些捆绑包在 karaf 之上作为功能运行。通常,我们的开发人员一次处理一个捆绑包。我们的正常开发是这样的:代码,编译,将包复制到部署文件夹,测试。我们还发现 hotdeploy 只是拒绝覆盖作为功能安装的某些捆绑包,而无需重新启动服务器或功能卸载/重新安装,因此有时周期更长。

我的问题是:社区中是否有人有更好的方法?我们做事的方式很有效,但我觉得它很慢而且效率很低,我敢打赌有人想出了更好的东西!

编辑:我意识到我的问题很不清楚......我们在 Karaf 下使用 Equinox。我们还使用 Eclipse 和 Maven,虽然我不知道使用 Maven 是否相关。

0 投票
4 回答
17293 浏览

osgi - Apache Karaf 与 Servicemix

有人使用 Karaf 而不是 Servicemix 吗?如果是这样,您是如何做出这个决定的?我知道Servicemix在Karaf周围添加了一层功能,只是好奇Karaf是否单独使用以及为什么......

0 投票
5 回答
18883 浏览

java - 在 Apache Karaf 下设置 Java 堆大小

如果这是重复的,我深表歉意,但我似乎无法在任何地方找到答案。

使用 Apache Karaf 时增加最大 Java 堆大小的最佳方法是什么?

目前,我在 karaf.bat 文件中修改了以下行:

set DEFAULT_JAVA_OPTS=-server -Xmx<NewMaxValue>M.

我觉得修改bat文件不是最好的解决方案。此外,似乎没有一个配置文件可以放置它。

谢谢

0 投票
2 回答
1491 浏览

apache-karaf - Apache Karaf 2.2.3,功能启动问题

Karaf 2.2.3 最近发布,终于有一个预捆绑的 spring-jms 功能。为了让生活更轻松,我将它添加到 featuresBoot 配置属性中,并使用其他默认值:

featuresBoot=config,ssh,management,spring-jms

但是,当我启动 Karaf 时,它的行为无法控制。有时它会在启动时安装,有时则不会。当它不自动安装时,我尝试通过命令行添加它:

features:install spring-jms

甚至那行为也很疯狂。见下文:

这些是安装命令的背靠背执行。最后一次执行有效。

其他人看到这种行为吗?或者知道如何纠正?

0 投票
2 回答
3394 浏览

cxf - 如何覆盖 CXF 服务列表 URL?

我的网络服务有一个 REST 端点 URL,例如 /myapp/admin/services。如果我设置org.apache.cxf.servlet.hide-service-list-page=false了,那么我的 URL 会被 CXF 服务列表劫持。发生这种情况是因为列表 URL在 org.apache.cxf.transport.servlet.ServletController 中是相对的。

好的,好的,所以我不应该在我的 URL 结构中使用短语“服务”。过失。但现在我该如何解决这个问题?我想覆盖 ServletController 中的“/services”默认值。我只需要我的容器在该类上调用 setServiceListRelativePath() ,但我不知道如何。我想有一些神奇的 Spring 片段可以做到这一点?

如果重要的话,我将使用捆绑在 Talend Service Factory 中的 CXF。

0 投票
2 回答
3757 浏览

osgi - karaf 控制台中的“找不到命令:grep”

我对 Servicemix 版本 Fuse ESB 4.4.1 有奇怪的问题。

有时部分命令将无法加载且不可用。通常这种情况发生在我经常使用的命令 grep 中。这看起来如下:

karaf@root> 列表 | grep 春天

找不到命令:grep

它似乎是随机的,重新启动通常会有所帮助。对于以前版本的 Fuse ESB,它有时会发生,但非常罕见,现在它经常发生。有人可以帮忙,是什么导致了问题?