2013-07-04 3 views
0

내 지역 받는다는의 repo Karaf에로드 및 오류 여기Karaf 로딩 OSGI 번들 오류 내용은 프롤로그

[email protected]> 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 파일의를 얻기에 배포 샘플 OSGI 번들을 얻기 위해 노력하고 있어요에서 허용되지 않습니다

<?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

Manifest-Version: 1.0 
Implementation-Vendor: io.spray 
Implementation-Title: on-karaf 
Implementation-Version: 1.2-M8 
Implementation-Vendor-Id: io.spray 
Specification-Vendor: io.spray 
Specification-Title: on-karaf 
Implementation-URL: http://spray.io 
Specification-Version: 1.2-M8 

I의 잉크 MANIFEST.MF이 잘못되었을 수 있습니다. 원인 일 수 있습니까? 나는 Karaf, OSGI 및 Maven에 익숙하지 않으므로 중요한 단계를 놓친 것이 가능합니다.

+0

이것은 XML 처리 오류입니다.하지만 XML에 어떤 문제가 있는지 잘 모르겠습니다. 어쩌면'standalone = "yes"부분일까요? –

+0

XML 파일이나 처음에는 이상한 문자/인코딩이있는 다른 XML 파일이되어야합니다. 몇 가지 편집기를 사용하여 16 진수를 표시하고 문제를 해결할 수 있습니다. –

+0

@NeilBartlett @Petter 그래, 그게 내 생각이기도하지만'xmllint'를 잘 실행할 수 있었으니 무슨 문제인지 모르겠다. 'MANIFEST.MF'가 맞습니까? – Bob

답변

1

기능 : 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 

http://fusesource.com/docs/esb/4.2/deploy_osgi/DeployFeatures-Create.html

+0

그게 나를 위해 작동하지 않았다 '실행 오류 명령 : 저장소를 추가 할 수 없습니다 : \t URL [mvn : io.spray/on-karaf/1.2-M8/xml/features]을 확인할 수 없습니다.' – Bob

+0

Can io.spray/on-karaf/1.2-M8에 JAR의 내용을 표시 하시겠습니까? 해결되지 않으면 기능 XML 파일이 파일에 없거나 파일의 다른 위치에있을 수 있음을 의미합니다. mvn : 프로토콜 처리기가 원격 서버를 조사하는 것이 아니라 로컬 Maven 폴더에서도 찾고 있는지 확인하고 싶을 수 있습니다. EDIT : 아래의 답변 주석과 같이 보이는 것은 실제 jar를 찾고 있다고 ('cat'은 JAR 바이너리를 제공하기 때문에) JAR 파일에서 features.xml을 찾지 못했다는 것입니다. –

+0

'features.xml' 위의 내용은 루트 수준 인'META-INF/MANIFEST.XML'에 있으며,'examples' 폴더에 클래스 묶음이 있습니다. – Bob

0

나는 회의에서 살 때 한 번이 오류를했다. 문제는 wlan 라우터가 웹 양식을 사용하여 인증해야한다는 것입니다. 나는 무선 랜을 켰지 만 인증을받지 못했습니다. 그래서 모든 URL에 대해 양식이 돌아 왔습니다.

기능을 추가하거나 번들을 설치할 때 잘못된 콘텐츠가 사용될 수 있습니다. 필자의 경우에는 maven이 maven repo에있는 유효하지 않은 컨텐츠의 일부를 캐싱하는 것이 가장 최악이었습니다. 따라서 wlan이 다시 작동 한 후에도이 파일을 삭제해야했습니다.

이 문제가 받는다는 콘솔의 기능 URL에 고양이를 수행하여 당신에게 무슨 일 경우 확인할 수

:

고양이 MVN : io.spray/온 karaf/1.2 M8 당신은이

+0

, 나는 종류의 바이너리 덤프를 보았다 여기에'F ?? BMETA-INF/MANIFEST.MF ??? M ?? LK-? K - * ?? R R? 3? -? I? M? + I,' – Bob

+0

이것은 jar 파일입니까? –

+0

예, jar 파일입니다. – Bob

0

(기본값) jar 대신에 프로젝트 패키징을 pom으로 설정하여 자원이 저장소가 아닌 저장소에 직접 배치되도록하십시오. 당신의 maven pom에 <packaging>pom</packaging>을 추가하고, 재배포하면 괜찮을 것입니다. (카라 프에서는 features:addurl mvn:io.spray/on-karaf/1.2-M8/xml/features를 실행하십시오.) 적어도 저에게는 그 트릭이있었습니다.