Karaf 2.3.1을 사용 중입니다. 나는 Apache Karaf 매뉴얼 연습 "콘솔 확장"페이지 no를 따르고 있었다. 105. 나는 약간의 편차와 함께 모든 지시 사항을 따랐다. HelloShellCommand 번들을 Karaf에로드 할 수있다. 그것은 번들 이드를 던져 버렸습니다. 그러나 "test.hello"명령이 작동하지 않습니다.karaf 청사진 콘솔을 확장 할 때 "실패"
karaf의 @ 루트> OSGI : 클래스가 표시되고 조직/아파치/karaf.shell/samplesHelloShellCommand.class
karaf의 @ 루트> test.hello가 보여주는 명령을 찾을 수없는
karaf의 @ 루트> OSGI : 목록에 해당 번들에 대한 청사진 "실패"가 표시됩니다.
는 이제 단지를 구축 해보자 : 이클립스에서 jar를 구축 않았다
나는 다음 단계에서 "절 JAR 파일을 컴파일하기"에 주어진 명령에서 일탈을했다. 파일 내보내기 Java Jar 파일.그런 다음 "mvn install"을 실행하십시오. 여기서 Maven이 .jar 파일을 사용하는 방법을 이해하지 못했습니다. 그것은 pom.xml을 찾고 있습니다. 그래서 루트 디렉토리에 가서 "mvn install"을 실행했습니다. 그것은 성공적으로 통과했다.
osgi : install ..도 성공적으로 통과했습니다. 그러나 Blueprint.xml이 통과하지 못했을 것으로 생각됩니다.
방법이 문제를 해결하기 위해 :
Karaf에서 각 번들에 어떤 명령이 설치되어 있는지 알 수있는 방법은 무엇입니까?
단계 -1에서 생성 된 .jar 파일은 pom.xml을 사용하는 "mvn install"과 다릅니다. 제가 누락 된 것이 있습니까? mvn에서 .jar를 사용하는 방법?
그리고 왜 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]
1. 예. 번들은 활성 상태입니다. 그러나 청사진은 실패 상태입니다. 2. 실제로 번들의 라이프 사이클에 대해 알려주는 osgi 명령을 찾고있었습니다. 나는 osgi : list와 osgi : 클래스를 사용했지만, 번들에 어떤 명령을 추가했는지 알려주지 않았다. 귀하의 충고에 감사드립니다. Nabble 포럼에서이 쿼리를 제기했습니다. –