IntelliJIdea,部署spring + JSF应用程序时出错

时间:2011-06-25 06:23:15

标签: jsf tomcat intellij-idea

在IntelliJIdea中,我创建了一个小应用程序,只有ide自动创建的默认页面。我添加了两个框架:spring(3)和JSF 2.应用程序级别是java ee 2.5,因为我想部署在Tomcat 6.0上。
我安装了一个Apache Tomcat 6.0,创建了一个管理员用户,并经过测试,它可以工作 但是,当我部署简单的应用程序时,它似乎正确地部署它,但访问它,浏览器会给出错误:

Simple jsp page
12:   <body>
13: 
14:   f:view>
15:       
16:   
17: 


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.RuntimeException: FacesContext not found
....

2 个答案:

答案 0 :(得分:2)

  

java.lang.RuntimeException:找不到FacesContext

JSF组件抱怨无法找到FacesContextFacesServlet是负责创建它的人。所以它显然没有运行。您需要确保在浏览器地址栏中输入的请求URL与FacesServlet的URL模式匹配,因为它已在webapp的web.xml文件中定义(并且已在web.xml)。如果是例如

<url-pattern>*.jsf</url-pattern>

然后您需要确保请求网址

  

http://localhost:8080/contextname/page.jsf

因而

  

http://localhost:8080/contextname/page.jsp

如果请求URL与FacesServlet的URL模式匹配,则将调用它并执行所有JSF作业。


无关问题:为什么在使用JSF2时选择JSP?为什么不使用其优越的继承者Facelets?

答案 1 :(得分:0)

我遇到了同样的问题。我的解决方案是使用URL“http:// localhost:8080 / index.faces”。