OSGi 번들 누락으로 인한 AEM 배포 후 RDE 서비스 중단
AEMaaCS(Adobe Experience Manager as a Cloud Service) RDE 환경에 코드를 배포하면 더 엄격한 API 영역 제한으로 인해 io.jsonwebtoken과(와) 같은 서드파티 OSGi 번들을 해결할 수 없을 때 서비스가 중단됩니다. 이 문제를 해결하려면 Bundle-ClassPath 또는 -conditionalpackage을(를) 사용하여 프로젝트에 필요한 JAR 파일을 포함하고 aio aem:rde:install을(를) 사용하여 다시 배포한 다음 모든 종속성이 정상적으로 해결되었는지 확인하십시오.
설명 description
환경
- 제품: Adobe Experience Manager as a Cloud Service(AEMaaCS) - 사이트
- 컨텍스트: RDE(빠른 개발 환경)
- 도구: 배포용
aio aem:rde:install명령
참고: 표준 클라우드 인스턴스 및 로컬 배포는 영향을 받지 않습니다.
문제/증상
-
aio aem:rde:install을(를) 사용하여 배포한 후 RDE 환경이 응답하지 않습니다. -
인스턴스에 "서비스 중단" 메시지가 표시됩니다.
-
인스턴스를 다시 시작하거나 재설정해도 문제가 해결되지 않습니다.
-
오류 로그에
io.jsonwebtoken과(와) 관련된 확인되지 않은 타사 OSGi 번들 종속성이 표시됩니다. -
종속성은 로컬 및 표준 클라우드 환경에서 해결되지만 API 영역 제한이 엄격하여 RDE에서 실패합니다.
-
발췌 오류 로그:
Unable to resolve fpaec-aem-base-components.core 645: missing requirement fpaec-aem-base-components.core [ 645] osgi.wiring.package; (&(osgi.wiring.package=io.jsonwebtoken)(version>=0.11.0)(!(version>=1.0.0)))
해결 방법 resolution
이 문제를 해결하려면 다음 단계를 수행합니다.
-
RDE에서 적용한 API 영역 제한을 검토하십시오. 이러한 제약 조건은 패키지 가시성을 제한하고
io.jsonwebtoken과(와) 같은 서드파티 번들에 대한 액세스를 차단합니다. -
필요한 타사 라이브러리를 프로젝트에 포함합니다.
-conditionalpackage또는Bundle-ClassPath을(를) 사용하여 다음 JAR 파일을 포함하십시오.lib/jjwt-api-0.11.2.jarlib/jjwt-impl-0.11.2.jarlib/jjwt-jackson-0.11.2.jar
-
bnd.bnd파일에 다음 지침을 추가합니다.code language-none Bundle-ClassPath: ., lib/jjwt-api-0.11.2.jar, lib/jjwt-impl-0.11.2.jar, lib/jjwt-jackson-0.11.2.jarcode language-none -conditionalpackage: \ io.jsonwebtoken;version="0.11.2", \ io.jsonwebtoken.security;version="0.11.2" -
aio aem:rde:install을(를) 사용하여 업데이트된 패키지를 배포합니다. 모든 종속성이 해결되고 서비스 중단이 더 이상 발생하지 않는지 확인합니다. -
안정성을 보장하기 위해 작성자 및 게시 환경 모두에서 배포를 테스트합니다.