我不知道如何继续,但是对于新的JSF 1.2 Web应用程序,我总会收到“
java.lang.RuntimeException:找不到FacesContext”。我确定这只是我找不到的某些配置。
第一个f:
或h:
标记会发生异常。<f:view>
一开始就已经很重要。
我的 index.jsp
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<f:view>
<html>
<head>
<title>MyWebsite</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<div>MyContent</div>
</body>
</html>
</f:view>
我的web.xml
样子是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jsp</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>720</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
然后,我还有一个faces-config.xml
应该在页面正文中引用我以后要使用的myBean:
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
<managed-bean>
<managed-bean-name>myClassName</managed-bean-name>
<managed-bean-class>
com.company.className
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
我在这里想念什么?
java.lang.RuntimeException: Cannot find FacesContext
因此,JSF
<f:xxx>
和<h:xxx>
标签抱怨FacesContext
找不到。本FacesServlet
是一个负责创建faces上下文。当请求URL匹配其URL模式(在您的情况下)时,将调用facesservlet *.jsf
。因此,当您打开index.jsp
as
http://localhost:8080/context/index.jsp
或依赖该<welcome-file>
设置时,就不会调用faceservlet,并且确实会发生此异常。
您需要打开index.jsp
as
http://localhost:8080/context/index.jsf
或将欢迎文件条目设置为index.jsf
,以正确调用facesservlet,以便它可以创建在JSP页面中声明的JSF组件所需的faces上下文。
但是请注意,在此JSF 1.x +
Tomcat环境中,仅修复欢迎文件是不够的。您还需要在webcontent中的index.jsf
文件旁边提供一个物理上存在但完全空的index.jsp
文件,以欺骗index.jsf
作为欢迎文件真正存在的Tomcat。否则会显示404错误,因为它会事先检查欢迎文件的物理存在。
与 具体问题 无关 ,我想知道如果您显然已经安装了Facelets1.x并注册了其视图处理程序,为什么还要使用JSP。Facelets远优于JSP。
我在数据库上使用pySpark 2.1。 我编写了一个UDF来为pyspark数据帧的每一行生成唯一的uuid。我使用的数据帧相对较小 我知道有内置函数spark functions和zipWithinIndex()生成行索引,但我被特别要求在这个特定项目中使用uuid。 UDF\u insert\u uuid在小数据集上运行良好,但似乎与内置的spark函数subtract冲突。 导致此错误的原
Lenovo@Lenovo-ThinkCentre-mini:~/documents/apache-jmeter-4.0/bin$jmeter-n-t test.jmx-l my-test-plan-result.jtl-j my-test-plan-result.log-dthreads=500-dramp_up=60-dduration=300 NonGUIDriver java.lang.r
我们已经用Tomcat8.0设置并部署了Drool7.15应用程序。然而,问题是当我们试图部署规则时,我们会得到下面的异常。 解决这个问题的办法是什么?同样的罐子在Wildfly(jBOSS)中运行良好 2019年9月14日18:24:06.510严重[http-nio-8080-exec-8]org.kie.server.services.impl.kieserverimpl.createCon
我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-
问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至
问题内容: 我正在为我的项目使用jersey,并尝试从字符串中解析URI。 代码很简单,但是下面出现错误 看来程序找不到委托。我已经导入了,并且应该在我的构建路径中包含委托。但我仍然会收到此错误。 有人知道如何解决吗?谢谢! 问题答案: 如果您使用的是Maven,请使用以下依赖项: 对于Gradle,以下将起作用:
问题内容: 我只需要重新安装mysql,我就无法启动它。它找不到套接字(mysql.sock)。问题是我也不能。在Mac OS X 10.4终端中,键入:,然后返回。套接字文件存在于该位置是有道理的,但实际上并不存在。 如何找到套接字文件? 如果locate返回错误的位置,则它必须具有某种内存,并且可能具有索引。如何刷新该索引? 问题答案: 回答问题的第一部分: 跑 并检查“ socket”变量