jsf - IntelliJ Idea,spring + JSF 应用部署错误

标签 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
....

最佳答案

java.lang.RuntimeException: FacesContext not found

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

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

那么你需要保证请求的URL是

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

因此不是

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

如果请求 URL 与 FacesServlet 的 URL 模式相匹配,那么它将被调用并完成所有 JSF 作业。


与问题无关:为什么在使用 JSF2 时选择 JSP?为什么不改用它的高级继任者 Facelets?

关于jsf - IntelliJ Idea,spring + JSF 应用部署错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476251/

相关文章:

java - 检测 html 文件时 HttpServletResponse 内容类型为 null

java - Jsf页面不显示新添加的值

tomcat - web.xml 中的多个安全约束不起作用

tomcat - 使用更新重新部署时如何保留 xml 配置?

java - 已由更新版本的 Java 运行时编译(类文件版本 57.0)

java - 使用 Java 和 Jasper 生成 Excel 文件

java - jsf2和tomcat6中的managementBean中无法设置值

java - 在 eclipse 中运行门管道我得到这个错误 Java.lang.ClassNotFoundException : gate. 资源

intellij-idea - 如何在 intellij 中使用 -parameters javac 选项?

ubuntu - 尝试在 IntelliJ 上添加 Weblogic 插件配置