如何为Apache Karaf设置代理

14

很简单,但在谷歌上搜索不到任何实质性的结果。 我正在运行Karaf,并且处于代理后面。 我需要通过执行以下命令向容器添加一些功能:

features:addurl mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features

我这样做时,出现了以下异常:

Could not add Feature Repository:
java.lang.RuntimeException: URL [mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features] could not be resolved.

这似乎是一个代理身份验证问题。请注意我已经在Maven中添加了代理信息,可以下载依赖项。我猜想我需要在Karaf安装的etc目录下的某个文件中添加一些信息,比如http.proxyName或http.Proxyxxx。

有任何想法吗?

更新: 我在org.ops4j.pax.url.mvn.cfg中找到了一个设置。

org.ops4j.pax.url.mvn.proxySupport=true 

我已经取消注释了,但我仍然无法进行身份验证。因此,我怀疑我需要在某个地方设置我的Maven主目录。

更新2:

在您的Apache karaf文件夹中,有一个etc文件夹。编辑org.ops4j.pax.url.mvn.cfg文件。要使其工作,您需要执行两个步骤:

  • 指向karaf到您的Maven安装目录:在cfg文件中找到以下字符串org.ops4j.pax.url.mvn.settings,取消注释并添加您的Maven主目录路径,例如org.ops4j.pax.url.mvn.settings=/maven/conf/settings.xml
  • 告诉karaf使用Maven代理设置:在cfg文件中找到以下字符串org.ops4j.pax.url.mvn.proxySupport,取消注释,并在需要时将其设置为true,例如org.ops4j.pax.url.mvn.proxySupport=true

我重新启动了Karaf,现在我可以下载/安装功能。我希望这能帮助某个人。

2个回答

9

如果你按照我上面的帖子操作,你就会发现在通过代理启动Karaf有两个主要步骤。我不确定是否还有其他步骤,所以我愿意听取其他答案。简而言之,编辑org.ops4j.pax.url.mvn.cfg文件以指向你的Maven安装和Maven代理设置。


5
如果本地maven实例不可用,则下面的配置将有所帮助:
Java代理设置将解决此问题:
-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=80
在我的情况下,我正在使用Karaf-Wrapper(http://karaf.apache.org/manual/latest-2.3.x/users-guide/wrapper.html),并在etc/KARAF-wrapper.conf中添加以下设置即可解决!

wrapper.java.additional.10=-Dhttp.proxyHost=127.0.0.1

wrapper.java.additional.11=-Dhttp.proxyPort=80

注意:使用此选项将通过代理公开Web服务,因此如果您想避免此情况,在达到目的后,您需要关闭代理。

1
也许这个问题已经有答案了,但这个更简单,因为我们只需要添加Java参数,而不需要安装本地Maven即可工作。感谢Sanvijaya! - Nereis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接