Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml prolog中不允许Karaf加载OSGI包错误内容_Xml_Osgi_Apache Karaf - Fatal编程技术网

Xml prolog中不允许Karaf加载OSGI包错误内容

Xml prolog中不允许Karaf加载OSGI包错误内容,xml,osgi,apache-karaf,Xml,Osgi,Apache Karaf,我正在尝试将一个示例OSGI捆绑包部署到本地maven repo中,并将其加载到Karaf中,然后得到错误信息 karaf@root> features:addurl mvn:io.spray/on-karaf/1.2-M8 [Fatal Error] :1:1: Content is not allowed in prolog. Error executing command: Unable to add repositories: Content is not allowed

我正在尝试将一个示例OSGI捆绑包部署到本地maven repo中,并将其加载到Karaf中,然后得到错误信息

karaf@root> features:addurl mvn:io.spray/on-karaf/1.2-M8
[Fatal Error] :1:1: Content is not allowed in prolog.
Error executing command: Unable to add repositories:
    Content is not allowed in prolog.
这是我的
features.xml
文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="io.spray.examples.karaf">
    <feature name="io.spray.examples.karaf" version="1.2-M8">
        <bundle>mvn:io.spray/on-karaf/1.2-M8</bundle>

        <bundle>mvn:com.typesafe.akka/akka-osgi_2.10/2.2.0-RC2</bundle>
        <bundle>mvn:com.typesafe/config/1.0.1</bundle>
        <bundle>wrap:mvn:com.chuusai/shapeless_2.10.0-RC5/1.2.3</bundle>
        <bundle>mvn:org.parboiled/parboiled-core/1.1.5</bundle>
        <bundle>mvn:org.parboiled/parboiled-scala_2.10/1.1.5</bundle>
        <bundle>mvn:org.scala-lang/scala-library/2.10.0</bundle>
        <bundle>mvn:org.scala-lang/scala-reflect/2.10.0</bundle>
        <bundle>mvn:io.spray/spray-util/1.2-M8</bundle>
        <bundle>mvn:com.googlecode.concurrentlinkedhashmap/concurrentlinkedhashmap-lru/1.3.2</bundle>
        <bundle>mvn:io.spray/spray-caching/1.2-M8</bundle>
        <bundle>mvn:io.spray/spray-http/1.2-M8</bundle>
        <bundle>mvn:io.spray/spray-io/1.2-M8</bundle>
        <bundle>mvn:io.spray/spray-can/1.2-M8</bundle>
        <bundle>mvn:org.jvnet.mimepull/mimepull/1.9.2</bundle>
        <bundle>mvn:io.spray/spray-httpx/1.2-M8</bundle>
        <bundle>mvn:io.spray/spray-routing/1.2-M8</bundle>

        <bundle>wrap:mvn:io.spray/spray-json/1.2.5</bundle>
    </feature>
</features>

我认为我的
MANIFEST.MF
可能不正确,这可能是原因吗?我不熟悉Karaf、OSGI和maven,所以我可能错过了一个重要的步骤。

功能:addUrl行是错误的。mvn:io.spray/on-karaf/1.2-M8指向一个JAR,因此在其上使用addurl将尝试解析JAR文件,就像它是XML一样。如果feature.xml位于JAR文件中,则必须直接引用xml:

features:addurl mvn:io.spray/on-karaf/1.2-M8/xml/features

我在一次会议上犯过一次这样的错误。问题是那里的wlan路由器需要使用web表单进行身份验证。我打开了wlan,但未通过身份验证。因此,对于每个url,表单都会返回

添加功能或安装捆绑包时,可能会导致使用无效内容。 在我的例子中,这甚至是最糟糕的,因为maven正在maven repo中缓存一些无效内容。所以我不得不删除这些文件,即使我的无线局域网再次工作

您可以通过在maven控制台中对功能url执行cat来检查此问题是否发生在您身上:


cat mvn:io.spray/on-karaf/1.2-M8

您必须将项目打包设置为
pom
,而不是(默认)
jar
,这样资源就可以直接放在存储库中,而不是放在jar中。添加
pom
对于你的maven pom,重新部署,你应该会没事的。(在Karaf中,执行
features:addurl mvn:io.spray/on-Karaf/1.2-M8/xml/features
)这至少对我起到了作用。

这是一个xml处理错误,但我不确定xml出了什么问题。可能
standalone=“yes”
部分必须是您的XML文件或其他XML文件,开头有一些奇怪的字符/编码。使用能够显示十六进制和故障排除的编辑器打开它。@NeilBartlett@Petter是的,这也是我的想法,但我能够在它上运行
xmllint
,所以不确定会出现什么问题。你觉得
MANIFEST.MF
看起来正确吗?我看不出MANIFEST有什么问题,但这无关紧要。我敢肯定,错误消息来自XML解析器。我认为@SheenaArtrip的答案最有可能是正确的。。。您试图像处理XML文件一样处理JAR文件。这对我不起作用,执行命令时出错:无法添加存储库:URL[mvn:io.spray/on-karaf/1.2-M8/XML/features]无法解析。您能在io.spray/on-karaf/1.2-M8上显示JAR的内容吗?如果无法解析,则表示您的功能XML文件可能不在文件中,或者可能位于文件中的其他位置。您可能还希望确保mvn:protocol处理程序甚至可以查看本地maven文件夹,而不仅仅是查看远程服务器。编辑:看起来您下面的回答评论说您正在查找实际的jar(因为“cat”给您一个jar二进制文件),但您在jar中找不到features.xml。
features.xml
和上面显示的内容在根级别,
META-INF/MANIFEST.xml
examples
文件夹中的一堆类。那就是我的全部。最好的办法可能是直接引用XML,使用一个文件:uri,以最好地隔离问题。标准的karaf特性xml与JAR文件一起部署,也部署在JAR文件中。实际上,不确定addurl使用哪一个。这对我来说似乎不是问题,我看到了某种二进制转储,这里是前几行
F??BMETA-INF/MANIFEST.MF???M??LK-。?K-*?ϳR0?3???-?I?M?+I,
功能文件不应是jar文件。您是否使用了错误的maven uri?
features:addurl mvn:io.spray/on-karaf/1.2-M8/xml/features