2013-07-26 3 views
0

Karaf 2.3.1을 사용 중입니다. 나는 Apache Karaf 매뉴얼 연습 "콘솔 확장"페이지 no를 따르고 있었다. 105. 나는 약간의 편차와 함께 모든 지시 사항을 따랐다. HelloShellCommand 번들을 Karaf에로드 할 수있다. 그것은 번들 이드를 던져 버렸습니다. 그러나 "test.hello"명령이 작동하지 않습니다.karaf 청사진 콘솔을 확장 할 때 "실패"

karaf의 @ 루트> OSGI : 클래스가 표시되고 조직/아파치/karaf.shell/samplesHelloShellCommand.class

karaf의 @ 루트> test.hello가 보여주는 명령을 찾을 수없는

karaf의 @ 루트> OSGI : 목록에 해당 번들에 대한 청사진 "실패"가 표시됩니다.

  1. 는 이제 단지를 구축 해보자 : 이클립스에서 jar를 구축 않았다

    나는 다음 단계에서 "절 JAR 파일을 컴파일하기"에 주어진 명령에서 일탈을했다. 파일 내보내기 Java Jar 파일.

  2. 그런 다음 "mvn install"을 실행하십시오. 여기서 Maven이 .jar 파일을 사용하는 방법을 이해하지 못했습니다. 그것은 pom.xml을 찾고 있습니다. 그래서 루트 디렉토리에 가서 "mvn install"을 실행했습니다. 그것은 성공적으로 통과했다.

  3. osgi : install ..도 성공적으로 통과했습니다. 그러나 Blueprint.xml이 통과하지 못했을 것으로 생각됩니다.

    1. 방법이 문제를 해결하기 위해 :

    나는 도움이 필요하십니까?

  4. Karaf에서 각 번들에 어떤 명령이 설치되어 있는지 알 수있는 방법은 무엇입니까?

  5. 단계 -1에서 생성 된 .jar 파일은 pom.xml을 사용하는 "mvn install"과 다릅니다. 제가 누락 된 것이 있습니까? mvn에서 .jar를 사용하는 방법?

  6. 그리고 왜 blueprint.xml이로드되지 않았습니까? 사전 또한

    에서

감사합니다, 우리는이 유래가 있습니다

2013년 7월 27일 19 : 44 : 30,733 | 오류 | rint Extender : 2 | BlueprintContainerImpl
| 청사진 컨테이너 | 393 | 7 - org.apache.aries.blueprint.core - 1.1.0 | 1) 에 관한 번들 널

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
at java.util.ArrayList.rangeCheck(ArrayList.java:570)[:1.7.0-ea] 
at java.util.ArrayList.get(ArrayList.java:348)[:1.7.0-ea] 
at org.apache.aries.blueprint.container.BlueprintContainerImpl.readDirectives 
     (BlueprintContainerImpl.java:211)[7:org.apache.aries.blueprint.core:1.1.0] 
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun 
     (BlueprintContainerImpl.java:283)[7:org.apache.aries.blueprint.core:1.1.0] 
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run  
     (BlueprintContainerImpl.java:261)[7:org.apache.aries.blueprint.core:1.1.0] 
at java.util.concurrent.Executors$RunnableAdapter.call 
     (Executors.java:471)[:1.7.0-ea] 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0-ea] 
at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0-ea] 
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run 
     (ExecutorServiceWrapper.java:106)[7:org.apache.aries.blueprint.core:1.1.0] 
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run 
     (DiscardableRunnable.java:48)[7:org.apache.aries.blueprint.core:1.1.0] 
at java.util.concurrent.Executors$RunnableAdapter.call 
     (Executors.java:471)[:1.7.0-ea] 
at java.util.concurrent.FutureTask$Sync.innerRun (FutureTask.java:334)[:1.7.0-ea] 
at java.util.concurrent.FutureTask.run (FutureTask.java:166)[:1.7.0-ea] 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 
     (ScheduledThreadPoolExecutor.java:178)[:1.7.0-ea] 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run 
     (ScheduledThreadPoolExecutor.java:292)[:1.7.0-ea] 
at java.util.concurrent.ThreadPoolExecutor.runWorker 
     (ThreadPoolExecutor.java:1110)[:1.7.0-ea] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run 
     (ThreadPoolExecutor.java:603)[:1.7.0-ea] 
at java.lang.Thread.run(Thread.java:717)[:1.7.0-ea] 

답변

0

에 대한 청사진 컨테이너를 시작할 수 없습니다 번들이 시작되어 있습니까? 시작과 함께 osgi : install -s를 사용 했습니까? 그렇지 않다면 start [bundleId]로 번들을 시작해야합니다.

관련 2) 도움말을 실행하면 명령 줄에 도움말이 표시됩니다. 명령 -h를 사용하면 명령 자체에 대한 개요를 볼 수 있습니다.

3) 일식에서 jar 파일을 만들면 작동하지 않을 것입니다. maven pom 만 가지고도 당신이 직접 추가하지 않는 한 유효한 Manifest를 가지고있다. (당신의 설명에서 볼 수 없었던)

4) 아마 당신의 번들이 시작되지 않았거나 그것은 청사진 확장기를 시작하지 않는 유효한 목록을 포함하지 않습니다. 그 모든 질문은 일반적으로 가장 karaf 사용자의 메일 링리스트

편집에 묻는 게다가

: 번들이 실패 않은 이유를 찾기위한 번들을 수행 정보를 번들에 주어진 ID 을 함께 왜 청사진이 실패했는지를 보여줘야합니다.

+0

1. 예. 번들은 활성 상태입니다. 그러나 청사진은 실패 상태입니다. 2. 실제로 번들의 라이프 사이클에 대해 알려주는 osgi 명령을 찾고있었습니다. 나는 osgi : list와 osgi : 클래스를 사용했지만, 번들에 어떤 명령을 추가했는지 알려주지 않았다. 귀하의 충고에 감사드립니다. Nabble 포럼에서이 쿼리를 제기했습니다. –