我正在尝试在JSF上创建一个简单的程序。我将它部署在JBOSS 5服务器上。但是当我尝试运行它时会抛出这些异常。
类型例外报告
消息描述服务器遇到阻止的内部错误() 它来自履行这一要求。
异常 org.apache.jasper.JasperException:java.lang.RuntimeException:不能 找到FacesContext org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
根本原因
java.lang.RuntimeException:找不到FacesContext javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1855) javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1672) org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:90) org.apache.jsp.index_jsp._jspService(index_jsp.java:67) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
答案 0 :(得分:3)
如果浏览器地址栏中显示的请求网址与webapp <url-pattern>
中定义的FacesServlet
的{{1}}不匹配,则会引发此异常。如果未调用web.xml
,则不会创建FacesServlet
,然后JSP页面中的JSF组件将抛出此异常。
如果URL模式是例如
FacesContext
然后您应该使用浏览器地址栏中的<url-pattern>*.jsf</url-pattern>
而不是index.jsf
打开该页面。