OSGI 컨테이너에 배포되어 현재 활성 상태 인 하나의 번들을 만들고 일부 서비스를 제공합니다.SlingRepository 서비스를 사용할 때 세션에 null이 표시되는 이유는 무엇입니까?
그리고이 서비스와 다른 서비스를 사용하는 다른 번들, 즉 SlingRepository을 사용하면 Apache Jachrabbit에서 노드를 만들 수 있습니다.
두 번째 번들은 첫 번째 번들에 작성된 구현을 사용하기 만하면됩니다.
두 번째 번들의 Activate annotation에서 첫 번째 번들을 실행하도록 코딩합니다. 그러나 두 번째 번들을 배포하면 세션에 대해 Null
이 표시됩니다.
@Reference
session = repository.loginadministrataive(null);
그러면, I는 BundleActivator를 인터페이스를 구현 처음 번들 한 클래스가 그 대신에 또 다른 할 수 있도록하는 또 다른 방법, 즉 액티베이터 클래스 시도. 하지만 그것은 같은 문제를 보여줍니다.
이 문제를 어떻게 해결할 수 있습니까?
두 번째 번들을 사용하여 첫 번째 번들을 실행하는 방법은 무엇입니까?
미리 감사드립니다. 당신의 친절한 대답을위한 Lookig.
고마워요. 나는이 문제를 해결했다. 나는 또한 일부 코드로 완전한 대답을 올렸다. 다시 한 번 감사드립니다 :) 이제 두 번째 번들의 Activate 주석에 몇 가지 코드를 추가하고 다른 웹 사이트를 크롤링하는 또 다른 문제에 봉착했습니다. 이제 저는 중간에 이것을 멈추고 싶었지만 멈추지 않았습니다. 이걸 어떻게 막을 수 있니? – devsda
장기 실행 코드를 activate 메소드에 추가하지 말고 구성 요소에 필요한 것을 설정하고 작업을 수행하는 스레드를 시작하십시오. Sling 코드베이스에는 Activate와 Thread가 포함 된 코드를 찾으면 많은 예제가 있습니다. –
링크를주세요. 그래서 제 코드로 구현할 수 있습니다. – devsda