2012-12-15 5 views
0

열린 jspx 페이지에서 다음 오류가 발생합니다.jsf 응용 프로그램의 org.apache.jasper.JasperException

org.apache.jasper.JasperException: /login.jspx(9,54) Document root element "ui:composition", must match DOCTYPE root "composition". 
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) 
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) 
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88) 
    at org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:214) 
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239) 
    at org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:120) 
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:180) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 

JSF 파일 내용 :

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<ui:composition 
    template="/jsp/common/classic-template-login.jspx" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:c="http://java.sun.com/jstl/core" 
     xmlns:ice="http://www.icesoft.com/icefaces/component" 
     xmlns:ui="http://java.sun.com/jsf/facelets" > 

    <div align="left"><ui:define name="title">OES Admin</ui:define></div> 

    <ui:define name="toolbar"> 
    </ui:define> 

    <ui:define name="pageView"> 

    <ui:decorate template="/jsp/common/page-include-template.jspx"> 

     <ui:define name="pageName" ></ui:define> 

     <ui:define name="pageActions"> 
     </ui:define> 

     <ui:define name="pageContent"> 
      <ui:include src="/WEB-INF/includes/login.jspx"/> 
     </ui:define>   
     </ui:decorate> 
    </ui:define> 
</ui:composition> 

답변

0

이 용어를주의 : 이것은 Facelets의 페이지가 아닌 JSP 페이지입니다. 단지 당신이 당신의 URL을 '* .jspx'에 매핑했기 때문에 그렇게 만들지 않습니다. 작은 것을 생각할 수도 있지만, facelets는 JSP 기술을 완전히 대체 한 것으로서 두드러진 차이점을 가지고 있습니다.

내 자신의 facelets 페이지의 차이점은 내가 추가로 네임 스페이스 선언이 있다는 것입니다.

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
+0

OP는 실제로 Facelets이 아닌 JSPX를 사용합니다 (예외 메시지의 파일 이름 및 JSP 컴파일러가 stacktrace를 호출 참조). JSPX는 ICEfaces 1.x 권장 사항의 남은 부분입니다 (Facelets가 소개되기 전부터 오랜 시간이 걸렸습니다). Facelets 태그는 JSP (X)에서 실제로 작동하지 않으므로이 오류가 발생합니다. OP가 ICEfaces 튜토리얼/가이드를 완전히 읽지 못했을 가능성이 큽니다. – BalusC