아래와 같은 에러 발생 시
1 2 3 4 5 6 7 8 9 10 11 12 | org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:542) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:171) org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:594) org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:553) org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:176) org.apache.oozie.servlet.HostnameFilter.doFilter(HostnameFilter.java:86) | cs |
oozie 홈 디렉터리 이하에 oozie-server/webapps/oozie/WEB-INF/lib/jsp-api-2.1.jar 파일과
oozie 홈 디렉터리 이하에 oozie-server/lib/jsp-api.jar 파일까지 2개의 jsp-api 버전의 jar 파일이 존재합니다.
파일을 검색 시 다음과 유사한 결과 값을 확인할 수 있습니다.
1 2 3 4 5 | $ sudo find / -name "jsp*.jar" |grep oozie /usr/local/oozie-4.3.0/libext/jsp-api-2.1.jar /usr/local/oozie-4.3.0/oozie-server/lib/jsp-api.jar /usr/local/oozie-4.3.0/oozie-server/webapps/oozie/WEB-INF/lib/jsp-api-2.1.jar | cs |
위의 jsp-api 관련 jar 파일 중 WEB-INF/lib 디렉터리 이하에 jsp-api-2.1.jar 파일을 이동 혹은 삭제하여 classloader 가 선택되지 않도록 합니다.
그래서 WEB-INF/lib 가 아닌 oozie-server/lib 의 jsp-api.jar 를 참조할 수 있도록 합니다.
1 2 3 | $ ll /usr/local/oozie-4.3.0/oozie-server/webapps/oozie/WEB-INF/lib |grep jsp-api -rw-r--r-- 1 hadoop-user hadoop 100636 Jan 26 15:20 jsp-api-2.1.jar | cs |
해당 jsp-api-2.1.jar 파일을 삭제 혹은 이동합니다.
출처: https://stackoverflow.com/questions/43051872/java-500-error-oozie-web-console-4-3