- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
只要我尝试通过“http://localhost:8080/beginner/faces/index.jsf”打开我的 index.xhtml,我就会得到以下异常:
javax.servlet.ServletException
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
java.lang.NullPointerException
com.sun.faces.renderkit.RenderKitImpl.createResponseWriter(RenderKitImpl.java:228)
com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:214)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125)
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.
在 eclipse 中,我通过“新建 Maven 项目向导”创建了一个 Maven 项目并选择了组 ID:“org.jboss.spec.archetypes”,工件 ID“jboss-javaee6-webapp-blank-archetype”版本:7.13我正在使用 JBoss 7.1.1.FINAL 并尝试了 JDK 6 和 JDK7
index.xthml 看起来像这样:
<?xml version="1.0" encoding= "UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>First JSF</title>
</h:head>
<h:body>
<h1>Hello there</h1>
</h:body>
</html>
我找了几个小时是有原因的,但找不到任何解决方案,即使我按照这本工作坊书告诉我做的每一步都做了。
最佳答案
它真的是 XHTML (Facelets) 文件吗?
仔细查看堆栈跟踪的以下行中的类名,了解谁在处理 View :
com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:214)
嘿,它被当作 JSP 文件处理了!这里肯定不完全正确。人们会期待一个 FaceletViewHandlingStrategy
如果它确实被视为 Facelets 文件,则在此处。
让我们回顾一下 URL:
http://localhost:8080/beginner/faces/index.jsf
嗯?它包含 2(两个!)典型的 FacesServlet
URL映射模式! /faces/*
和 *.jsf
.如果您实际上已经在您的 Web 应用程序的 web.xml
中注册了它们两者,那么它很可能会在 JSF 的内部代码中引起一些困惑。 (就像许多质量低劣的在线教程和代码示例一样)。如果找不到物理 Facelets 文件,它会默认回退到 JSP。如果/faces/*
映射匹配,则 JSF 将假定 /index.jsf
成为物理文件。然而,显然不是。它应该是 /index.xhtml
.
您是如何通过双重映射到达该 URL 的?您正在阅读的教程真的是这样指导您的吗?您不应该改用
http://localhost:8080/beginner/index.jsf
或
http://localhost:8080/beginner/faces/index.xhtml
?
请注意 /faces
在这种特定情况下应该是虚拟 URL,而不是项目结构的 Web 内容中的实际文件夹!
无论如何……那些 URL 映射模式是遗留 JSF 1.x 时代的遗留物。从 JSF 2.0 开始,可以只映射 FacesServlet
在 *.xhtml
直接使用,而不会弄乱虚拟 URL。
如果可以,摆脱所有其他<servlet-mapping>
和 <url-pattern>
这样您最终会得到 FacesServlet
的结果:
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
然后你可以通过以下方式打开页面
http://localhost:8080/beginner/index.xhtml
与部署中的实际路径完全一样。足够简单。
关于当文件扩展名为 ".jsf"但为 ".xhtml"时出现 JSF ServletException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21562750/
想法:2018.3 jetty :9.4.11 我按照 IDEA 中给出的说明下载了 jrebel 文件夹 在 Debug模式下运行 Jetty 服务器时出现以下错误。 HTTP ERROR 500
我刚刚加入了一个新团队,我正在尝试使用 GWT 在 Eclipse 中运行他们的项目。我知道代码没问题,但我不断收到类似的错误。 javax.servlet.ServletException:org.
我在 WAS7 中使用 JSF 2.1 mojjara 和 primefaces 3.5 我完成了从我的 JSF jar 和其他组件加载 FacesServlet 的集成 我现在面临的问题如下: 最佳
我在 java 文件中遇到错误,因为 ServletException 无法解析为类型 该行有多个标记 - HttpServletRequest 无法解析为 类型 - HttpServletRespo
我设置服务器的经验几乎为零,但目前我的工作是设置一台(不要问为什么)。这是一个 apache-tomcat6 服务器。 我一步步遵循了一些说明,当需要测试一切是否正常时,我得到的是: 我知道这有点盲目
我只是设置一个简单的测试类。代码补全可以在 Eclipse 中工作,但我无法启动该页面: 支持 bean: @Named @RequestScoped public class TestBean {
...我永远无法在这两者之间做出决定。我总是回到代码并在之间切换。 当您从(扩展的)HttpServlet 编码时(假设是一个 Login 类),它同时支持 ServletException 和 IO
使用Kotlin,我具有以下依赖关系: implementation("org.springframework.boot:spring-boot-starter-web") implementatio
我收到 javax.faces.FacesException: Value of 'groupList 'must be an array or a collection 错误。我用谷歌搜索了它,但我
我正在尝试在 Eclipse 上运行示例基本 REST API,但一直收到 ServletException。 代码如下: 员工.java package net.javabeat.articles.
我使用 tomcat 7.0.29,当我部署我的应用程序(一个小程序)并从 eclipse 启动 tomcat 时,我收到了这个错误。 严重:Servlet/test 抛出 load() 异常 jav
我在我的网络应用程序中打开其中一个页面时遇到了一个非常奇怪的错误。该应用程序基于 Seam 2.2 构建,并在表示层中使用 JSF (RichFaces)。我在 Tomcat 6 上运行它。 在日志中
我喜欢使用 spring-security 模块,但是当我按照 spring 项目的教程 ( http://docs.spring.io/spring-security/site/docs/3.2.x
我在执行以下代码时收到 javax.servlet.servletException.... " " " tiles:importAttribute scope="request"/> h:panel
我正在尝试使用以下代码创建 javax.servlet.ServletException 类的实例 public class MyTroubleViewer { public static void
我过去一直在抛出 ServletException,当 Servlet 出现问题时,主要是将异常包装在 ServletException 中。 现在我认为最好不要抛出 ServletException
这个问题在这里已经有了答案: How do I import the javax.servlet / jakarta.servlet API in my Eclipse project? (15 个回
这里我编写了一些代码,用于从数据库中检索值并传递一些值。 下面是Action类代码: AttendenceServiceImpl serveceimpl; public ActionForwar
说明: 我有一个在支持 bean 中设置成员的 JSF 命令链接,但是,当使用 setPropertyActionListener 设置支持 bean 成员时,出现标记无法识别的错误。 该项目构建和部
我是 ICEFACES 的初学者,尝试使用一些 ICEFACES 组件成功运行我的第一个 ICEFACES 屏幕。开始使用。我正在使用 ICEFACES 1.8.2。 我从此链接复制了 web.xml
我是一名优秀的程序员,十分优秀!