AEM 사이트에 JS 사용 API 문제로 인한 "예기치 않은 오류"가 표시됩니다
AEM 공개 사이트가 "예기치 않은 오류" 메시지와 함께 간헐적으로 중단되는 경우 JavaScript 사용 API 구성 요소 문제 때문일 수 있습니다. 포드를 다시 시작하여 서비스를 복원한 다음 더 이상 사용되지 않는 코드를 슬링 모델로 바꾸고 오류 처리를 개선하여 다시 발생하지 않도록 합니다.
설명 description
환경
Adobe Experience Manager as a Cloud Service(AEMaaCS) - 사이트
문제/증상
공개 웹 사이트에는 간헐적인 다운타임이 발생하며, 오류 메시지가 표시되고 특정 페이지를 로드하지 못하는 경우가 많습니다. 로그는 JavaScript Use API 인스턴스화 문제 및 HTTP 500 오류를 가리킵니다.
증상은 다음과 같습니다.
- 예기치 않은 오류입니다. 우리는 그것을 온라인으로 가져오려고 노력하고 있습니다.영향을 받는 페이지의 메시지입니다.
- Identifier linkDropdownLogic.js와 같은 JavaScript Use API 오류는 Use API에서 올바르게 인스턴스화할 수 없습니다.
- 잘못된 참조 또는 스크립트 논리로 인한 Sling 예외.
- 일부 페이지(예: 홈페이지)는 성공적으로 다시 로드되지만 일부 페이지는 로드되지 않습니다.
원인
사용자 지정 파일 Use API로 Identifier _____.js를 올바르게 인스턴스화할 수 없음 의 JavaScript 오류로 인해 중단이 발생했습니다.
- ECMAScript 소멸을 사용한 코드:
for (const [ _, res] of items)
- 이 구문은 AEM의 Sightly에서 사용하는 Rhino 엔진과 호환되지 않습니다.
- 복제하는 동안 스크립트에서 불완전한 콘텐츠 구조를 처리하려고 할 때 오류가 발생했습니다.
Pod에서 일어난 이유는 무엇입니까?
모든 게시 Pod에 동일한 코드가 있더라도 다음 이유로 인해 한 개만 실패했습니다.
- 불완전한 콘텐츠 복제 - Pod가 부분적으로 복제된 콘텐츠와 함께 임시 상태에 있었습니다.
- 안전하지 않은 반복기 처리 - JS 코드는 누락되었거나 불완전한 데이터 구조를 처리할 수 없습니다.
- 리소스 소모 - 오류 루프가 시스템 리소스를 소모하여 충돌이 발생했습니다.
- 자동 복구 없음 - 지속적인 리소스 소모로 인해 수동으로 다시 시작하지 않으면 pod을 복구할 수 없습니다.
기술 Insight
- 엔진 제한 사항: Rhino JS 엔진은 Java 반복기에서 소멸을 지원하지 않습니다.
- 코드 동작: 일반적인 조건에서 작동할 수 있지만, 스트레스나 부분 데이터에서 작동하지 않습니다.
- 영향: 다른 Pod는 정상적으로 계속 실행되는 동안 한 Pod가 오류 루프에 들어갔습니다.
해결 방법 resolution
JavaScript Use API 문제를 해결하려면 다음을 수행하십시오.
- 환경을 일시적으로 안정시키려면 모든 게시 pod를 다시 시작합니다. 이렇게 하면 HTTP 500 오류가 지워지고 사이트 가용성이 복원됩니다.
- 그런 다음 인스턴스화 오류를 일으키는 JavaScript 모델 클래스를 검토하십시오. 더 이상 사용되지 않는 JavaScript Use API 구성 요소를 Java 기반 Sling 모델로 바꾸고 참조된 모든 클래스에 올바른 액세스 메서드가 있는지 확인합니다.
- Java 반복기에서 ECMAScript 소멸을 사용하지 않도록 문제가 있는 코드를 업데이트합니다. 대신 표준 Java 반복자 패턴을 사용하십시오. Null 확인 및 오류 처리를 추가하여 불완전한 콘텐츠 구조를 안전하게 관리합니다.
- JavaScript에 try/catch 블록을 추가합니다. API 스크립트를 사용하여 콘텐츠가 누락된 경우 전체 실패를 방지합니다. 우아하게 성능 저하를 방지하고 다중 구간 오류를 방지하기 위한 구성 요소 디자인
- 마지막으로, 구성 요소 종속성을 검토하고 탐색과 같은 중요한 요소에 캐시된 대체 콘텐츠를 사용하는 것을 고려하십시오. 외부 서비스에 의존하는 구성 요소에 대해 회로 차단기를 구현합니다.
관련 읽기
사용되지 않거나 제거된 기능 | Adobe Experience Manager
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f