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

이 문제를 해결하려면 다음 단계를 수행합니다.

  1. RDE에서 적용한 API 영역 제한을 검토하십시오. 이러한 제약 조건은 패키지 가시성을 제한하고 io.jsonwebtoken과(와) 같은 서드파티 번들에 대한 액세스를 차단합니다.

  2. 필요한 타사 라이브러리를 프로젝트에 포함합니다. -conditionalpackage 또는 Bundle-ClassPath을(를) 사용하여 다음 JAR 파일을 포함하십시오.

    • lib/jjwt-api-0.11.2.jar
    • lib/jjwt-impl-0.11.2.jar
    • lib/jjwt-jackson-0.11.2.jar
  3. 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.jar
    
    code language-none
    -conditionalpackage: \
      io.jsonwebtoken;version="0.11.2", \
      io.jsonwebtoken.security;version="0.11.2"
    
  4. aio aem:rde:install을(를) 사용하여 업데이트된 패키지를 배포합니다. 모든 종속성이 해결되고 서비스 중단이 더 이상 발생하지 않는지 확인합니다.

  5. 안정성을 보장하기 위해 작성자 및 게시 환경 모두에서 배포를 테스트합니다.

관련 읽기

AEM의 신속한 개발 환경을 사용하는 방법

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f