- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Eclipse IDE 中使用 JBoss4.2。当我运行 hellojsf
程序使用JSP View 技术,运行良好。当我尝试使用相同组件的 Facelets 时,出现以下异常:
2012-06-20 12:41:30,941 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/HelloJSF].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.lang.StackOverflowError
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
最佳答案
FacesServlet
一直在无限循环中运行。如果您使用旧的 JSF 1.2 而不是新的 JSF 2.x 并且没有正确配置 JSF 以使用 XHTML 而不是 JSP,就会发生这种情况。 JSF 1.2 不支持 Facelets,而 JSF 2.x 捆绑了 Facelets。
如 upgrading到 JSF 2.0 不是一个选项(JBoss 4.2 作为 Servlet 2.5 兼容容器应该支持它),那么您需要单独安装 Facelets 1.x。下载jsf-facelets-1.1.15.jar并将其放入 /WEB-INF/lib
并编辑 web.xml
告诉 JSF 使用 .xhtml
作为默认后缀。
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
FacesServlet
映射 URL 模式必须
不是 是
*.xhtml
,这将导致它无限循环运行。留着吧
*.jsf
.
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
此外不要忘记在
faces-config.xml
中配置 Facelets View 处理程序.
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
现在您可以通过
http://localhost:8080/context/page.jsf
以通常的方式打开 Facelets 文件就像您用于 JSP 文件一样,唯一的区别是您应该有一个
page.xhtml
文件而不是
page.jsp
.
*.xhtml
.
关于jsf - 使用 Facelets 而不是 JSP 会导致 javax.servlet.http.HttpServletRequestWrapper.getSession() 处的 java.lang.StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114723/
我正在尝试使用 java/jsp 中的过滤器过滤掉名为“reason”的查询参数。 基本上,过滤器的作用是确保用户输入查看页面的“原因”。如果他们没有,则需要将他们重定向到“输入原因”页面。一旦他们输
在我的项目中,我有一组 api 调用,它们应该通过某些常见的验证集进行过滤。在这种情况下,我必须在请求到达 REST Controller 之前拦截请求,读取请求正文,进行验证并在请求通过验证时将其传
我正在尝试为我的 JSON 网络服务创建一个验证系统。这个想法是让一个拦截器捕获每个 Json @RequestBody,通过 JacksonMapping 用它创建一个 JSON 对象。然后从中读取
我有一个过滤器可以验证/授权 REST 调用。此过滤器需要访问请求参数,因此我为此编写了自定义 HTTPServletRequestWrapper。 import java.util.Collecti
我写了一个名为 HTTPRequest 的 HttpServletRequestWrapper,它读取完整的 HTTP POST 主体以供进一步使用。这个基于 http://natch3z.blogs
我有一个标准的 Spring MVC Controller (服务于 REST 调用),如下所示: @Controller public class SpringRestController {
我正在使用从“EAR A”到“EAR B”的编码形式。 当我尝试处理请求时: accion = "/decimprenta"; pagina = "/procesardeclaraci
我用的是Tomcat7。我的项目结构是: as1.jsp as2.jsp web.xml 的内容是: filter1 /as1.jsp
我的要求是解密用我自己的算法加密的请求体。 我尝试扩展 HttpServletRequestWrapper 并将新请求传递给 doFilter。但是 getInputStream 和 getReade
我目前正在使用 Jersey 库在 Java 中开发 RESTful Web 服务。 出于安全原因,我们需要类似于 Amazon 的简单存储服务的自定义身份验证。但是,这需要我计算正文(如果有的话)的
我想在 Servlet 请求中添加自定义 header 。 首先,我构建了一个HttpServletRequestWrapper类 public class HeaderRequest_DEBUG e
我正在尝试调整 HttpServletRequestWrapper(参见 How to read InputStream multiple times),以便在过滤器中使用 HTTP Post 正文后
我正在编写一个 Tomcat 应用程序,并根据 Google 的 oauth2 服务进行身份验证。我原本打算编写一个简单的 Filter 来进行身份验证,但无法在 Filter 中设置用户主体。根据我
我有一个过滤器,它接受传入请求,然后用 HttpServletRequestWrapper 包装它,而 HttpServletRequestWrapper 又具有 setParameter() 方法。
使用 HttpServletRequestWrapper 包装 HttpServletRequest 的目的是什么?我们这样做有什么好处? 最佳答案 HttpServletRequest是 HTTP
我在 Eclipse IDE 中使用 JBoss4.2。当我运行 hellojsf程序使用JSP View 技术,运行良好。当我尝试使用相同组件的 Facelets 时,出现以下异常: 2012-06
我是一名优秀的程序员,十分优秀!