저는 현재 CQ5/AEM으로 작업하고 있으며 인젝터 주석과 비슷한 방식으로 작동하는 @Reference 주석이 있습니다.주석 인젝터가 null로만 나타나면 어떻게 디버그합니까?
우리의 문제는 POM 파일에 잘못된 설정이있어서 주입이 실패한 것입니다.
문제를 일으키는 요소를 확인하기 위해 섹션별로 POM 파일 섹션을 변경해야했습니다. 무력은 분명히 결코 최선의 방법이 아닙니다.
스프링과 같은 다른 프레임 워크에서 주석 인젝터가 실패 할 때이를 디버깅하는 방법은 무엇입니까?
우리가 흔히 볼 수있는 문제가 있으므로 충분한 조언을드립니다.
안부,
바 야니
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<configuration>
<instructions>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Directory>OSGI-INF/lib</Embed-Directory>
<Embed-Transitive>true</Embed-Transitive>
</instructions>
</configuration>
</plugin>
우리는 구성을 제거한 후 그것을 해결했습니다.
그러나 제공된 범위의 복제기 종속성을 설정하여 해결할 수도 있습니다.
<dependency>
<groupId>com.day.cq</groupId>
<artifactId>cq-replication</artifactId>
<version>5.4.24</version>
<scope>provided</scope>
</dependency>
내 핵심 질문은 여전히 당신이 참조에 단지 널 주어진이 문제를 공격하는 방법에 대한 제안을 할 것이다, 우리는 @Reference로 시작하는 경우는 null 것을 가지고 주어진?
안녕하세요 Bertrand. 응답 해 주셔서 대단히 감사드립니다. 위의 질문에 대한 업데이트 된 설명을 참조하십시오. 우리를 도와 줄 시간을 찾을 수 있다면 크게 감사하겠습니다. –
Embed-Dependency 및/또는 Artifact 범위 문을 변경 한 후 작동하면 가져온 패키지를 사용할 수 없기 때문에 필요한 서비스가 시작되지 않았거나 클라이언트 번들이 같은 이유로 API 패키지를 보지 못했음을 의미합니다. 이 경우 CQ 로그에 오류가 표시되어야합니다. –
로그를 확인했지만 눈이 멀었 음에 틀림 없습니다. :) 팁 주셔서 감사합니다, 많이 고맙게 생각합니다. –