【问题标题】:Error with Pax runnerPax 跑步者出错
【发布时间】:2013-03-10 12:35:38
【问题描述】:

我正在使用 Maven pax 插件来启动 Equinox 容器,我的 osgi 包应该在其中部署。由于 pax runner 默认启动 felix 容器,我已明确给出启动 Equinox 容器的说明。这是我在 POM 文件中的 pax 插件配置

<plugin>
                <groupId>org.ops4j</groupId>
                <artifactId>maven-pax-plugin</artifactId>
                <version>1.4</version>
                <configuration>
                    <runnner>1.4.0</runnner>
                    <framework>equinox</framework>
                    <provision>
                        <param>--log=debug</param> 
                            <param>--definitionURL=file:C:\Users\661447\Desktop\Prime Workspace\OSGiDmHelloWorldProvider\platform.xml</param>               

                    </provision>
                </configuration>
            </plugin>

我也明确给出了平台定义。这是我的 platform.xml 文件

<platform>
    <name>Equinox 3.7.0</name>
    <system>
        http://mirror.netcologne.de/eclipse/equinox/drops/R-3.7-201106131736/org.eclipse.osgi_3.7.0.v20110613.jar
    </system>
    <profile name="minimal" default="true">
        <bundle>
            <name>OSGi Services</name>
            <url>
                http://mirror.netcologne.de/eclipse/equinox/drops/R-3.7-201106131736/org.eclipse.osgi.services_3.3.0.v20110513.jar
            </url>
        </bundle>
    </profile>
</platform>

现在,当我尝试通过命令 "mvn install pax:provision" 安装我的包时,我收到以下错误

 -> Preparing framework [Equinox 3.8.1]
 -> loading definition from url file:C:/Users/661447/Desktop/Prime Workspace/OSG
iDmHelloWorldProvider/platform.xml
 -> Using platform definition [org.ops4j.pax.runner.platform.internal.PlatformDe
finitionImpl@a10ea2]
 -> Using working directory [runner]
 -> Downloading bundles...
 -> Download system package
 -> Downloading [http://mirror.netcologne.de/eclipse/equinox/drops/R-3.7-2011061
31736/org.eclipse.osgi_3.7.0.v20110613.jar]
 -> Creating new file at destination: C:\Users\661447\Desktop\Prime Workspace\OS
GiDmHelloWorldProvider\runner\bundles\-31806645.jar
 -> Equinox 3.7.0 : connecting...
         ___
        /  /
       /  / Oops, there has been a problem!
      /  /
     /__/   org.ops4j.pax.runner.platform.PlatformException: [http://mirror.netc
ologne.de/eclipse/equinox/drops/R-3.7-201106131736/org.eclipse.osgi_3.7.0.v20110
613.jar] could not be downloaded
    ___
   /__/

 -> Exception caught during execution:
java.lang.RuntimeException: org.ops4j.pax.runner.platform.PlatformException: [ht
tp://mirror.netcologne.de/eclipse/equinox/drops/R-3.7-201106131736/org.eclipse.o
sgi_3.7.0.v20110613.jar] could not be downloaded

有人能帮帮我吗?提前致谢

【问题讨论】:

  • 我建议在 ops4j 邮件列表中提出这样的问题,您可能会在那里得到更好的反馈。

标签: java maven osgi equinox pax-runner


【解决方案1】:

如果您使用代理,您必须为 pax-runner 定义代理系统属性:http.proxyHosthttp.proxyPort。 Pax-Runner 使用代理属性来解析/下载使用 http(s) url 描述的工件。

【讨论】:

  • 我在我的 settings.xml 文件中给出了代理设置,如下所示。 代理truehttpmy_usernamemy_password[myHost] 8080 是这样吗?
  • 这些设置仅适用于 maven。您在平台定义中使用直接 http 链接。尝试运行“mvn -Dhttp.proxyHost=... -Dhttp.proxyPort=... pax:provision”
  • 非常感谢!!!那行得通!伟大的!!但是为什么我的命令提示符会显示这个,即使它启动了 equinox 容器“欢迎使用 Apache Felix Gogo”并且我有 Felix 命令输入“g!”???​​?
  • Equinox 最新版本默认使用 felix gogo shell
  • 非常感谢您!最后一件事。有什么方法可以将 osgi 包部署到正在运行的 Equinox 环境中?在maven的帮助下
猜你喜欢
  • 2015-09-09
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 2019-02-08
  • 1970-01-01
相关资源
最近更新 更多