JSP 오류 해결: pageEncoding 중복 선언 에러 해결법 (JBWEB004160)

JSP 개발 도중 다음과 같은 오류 메시지를 만났다.

/WEB-INF/.../.../***.jsp
(JBWEB004251: An error occurred at line: 2 column: 1)
JBWEB004160: Page directive must not have multiple occurrences of 'pageEncoding'

처음엔 당황했지만, 이는 JSP 지시문(<%@ page %>) 내부에서 pageEncoding 속성이 두 번 이상 선언된 경우 발생하는 오류다.


✅ 에러 원인

JSP 상단에는 일반적으로 다음과 같은 형식의 지시문이 포함된다:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page pageEncoding="UTF-8" %>  <%-- 중복 선언으로 오류 발생 --%>

여기서 pageEncoding="UTF-8"이 중복되어 있기 때문에 톰캣이나 웹 애플리케이션 서버에서 오류를 발생시킨다.


✅ 해결 방법

중복 선언을 제거하고 하나의 지시문으로 통합하면 된다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

혹은 다른 설정이 필요 없다면 간단히 이렇게 써도 된다:

<%@ page pageEncoding="UTF-8" %>

포인트는 pageEncoding은 딱 한 번만!


🔍 정리

  • JBWEB004160 에러는 JSP 파일 상단에서 pageEncoding을 중복 선언했을 때 발생한다.
  • 하나의 <%@ page %> 지시문에만 pageEncoding을 포함하거나, 중복 선언된 다른 지시문은 삭제해야 한다.
  • 에디터에서 "pageEncoding"을 검색해 중복된 부분을 쉽게 찾을 수 있다.

🔗 참고 링크

  1. 오류 읽는법좀 알려주세요 ㅠㅠ
  2. jsp.error.attribute.nowhitespace in Wildfly 10….
  3. How to set ‘org.apache.jasper.compiler.Parser. …

댓글 남기기