问题标签 [facesservlet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - java.lang.ClassFormatError:类文件 javax/faces/webapp/FacesServlet 中非本机或抽象方法中的缺失代码属性
我想将 Mojarra 2.1 与 Tomcat 7 一起使用,所以我在我的 pom 文件中添加了以下依赖项:
但是,当我尝试启动 Tomcat 时,出现以下异常:
这是如何引起的,我该如何解决?
这是我的web.xml
文件,其中可能包含问题的原因:
java - 将页面名称与 jsf web.xml 中的文件名解耦
我希望为响应 specific1.xhtml、specific2.xhtml 等请求而提供页面 generic.xhtml...
有没有办法设置 web.xml 以便多个请求映射到一个文件而不进行重定向?应始终向用户显示特定的.xhtml 名称。
特定名称与特定模式不匹配,例如以单词 specific 开头。我有一个特定名称的列表,这些名称都是用一页实现的。
这等效于具有 generic.xhtml?name=specific1 ,只是 name 参数是请求中的文件名。
如果这不能通过 web.xml 或其他配置文件处理,还有什么方法?
页面由 Tomcat 7 提供。
jakarta-ee - FacesServlet 如何知道根据 URL 渲染哪个 facelet?
我一直在检查,无法找到有关 FacesServlet 如何将 URL 解析为 Web 应用程序文件结构中的真实文件的解释。在 servlet 的上下文中,我的理解是 URL 只是您希望客户端使用的虚构名称。然后,在 web.xml 中,您将特定的 servlet 映射到 URL 模式,但是 servlet 的真实名称/位置对外界是隐藏的……这通常适用于 servlet。
特别是对于 JSF 2,我们处理 FacesServlet,这引出了我的第一个问题:FacesServlet 是我需要在我的应用程序中提供映射详细信息的唯一 servlet(也是我唯一需要的 servlet,期间)?答案似乎是“是”,但如果在某些情况下并非如此,请举个例子。
通过阅读关于 SO 的其他问题,我了解到并非所有请求都需要通过 FacesServlet,因此基本上请求分为 A)对不应该由 FacesServlet 处理的静态内容的请求,和 B)对动态内容的请求需要由 FacesServlet 处理。那么,静态内容是如何获得的呢?只是通过传入的请求,其中的 URL 与 FacesServlet 的 URL 模式不匹配,但匹配应用程序文件结构中的真实文件位置?
最后,我的主要问题是:当一个请求与 FacesServlet 的 URL 模式匹配时,FacesServlet 如何知道要呈现哪个视图文件 (.xhtml)?在使用 JSF 2 时是否有一个约定,我需要遵循它才能使其工作?如果不是,那么我不明白,因为就像我在上面提到的“通用”servlet 的情况下,URL 可以包含一个与真实文件名无关的名称,只要它映射到web.xml 文件中的正确 servlet。我觉得我在这里遗漏了一些明显(和重要)的东西。我唯一能想到的是 URL 应该匹配一个真实的文件位置,或者有另一个映射表或将 URL 与视图文件相关联的东西。
顺便说一句,我看了这个问题,它是相关的,但没有任何答案。
谢谢!
jsf - 无法让 CXF JAX-RS 和 JSF 一起工作
我正在尝试设置一个FooTest
使用 CXF JAX-RS 和 JSF 的小型示例应用程序。我从 CXF 部分开始,实现了一个简单的服务(工作)和一个名为 home.html 的小 html 页面(我可以在浏览器中访问它)。相关代码如下:
web.xml
FooService.java
现在我可以调用http://localhost:8080/FooTest/rest/foo
and http://localhost:8080/FooTest/home.html
。但是,当我开始定义和映射FacesServlet
to*.html
并尝试访问时,home.html
我得到一个NullPointerException
.
新的 web.xml
导致
我怎样才能解决这个问题?
更新 - 更多配置信息
该应用程序在 TomEE 1.5.2 的 JAX-RS 版本上运行。
src/main/webapp/WEB-INF/faces-config.xml
更新 - 解决方案
(感谢 David Blevins 的澄清并指出一个有用的例子)
去掉CXF配置部分,不是必须的。重命名home.html
为home.xhtml
,因为.xhtml
是javax.faces.DEFAULT_SUFFIX
用于 JSF 页面。FacesServlet
如果您想使用扩展访问您的 JSF 页面,请保留该映射.html
。这就足够了:
jakarta-ee - Glassfish - 将 servlet FacesServlet 标记为不可用
当我启动 Glassfish 2.1 服务器时,它似乎启动没有问题,但是当我尝试访问其管理控制台时,我收到错误:
在它的控制台和 server.log 上,我可以看到:
我第一次访问管理控制台时会记录最后 2 个条目。
为什么 glassfish 将 FacesServlet 标记为不可用?
java - Java EE - 基于内部业务逻辑的显示页面
我正在 Glassfish 服务器上使用 Java EE 实现企业应用程序。我需要我的应用程序执行一些逻辑来显示特定 URL 子集的正确输出。
问题描述:
我的网页文件夹具有以下结构:
我希望用户访问 URL:
但用户不得访问以下 URL:
当输入 URL /Protected/CorrectPage.xhtml 时,我想执行一些逻辑,根据这个逻辑的结果,我想显示 A.xhtml 或 B.xhtml,而不显示任何可见的 URL 更改(重定向)。
到目前为止尝试的解决方案:
我考虑过使用映射到 /Protected/*.xhtml 的 servlet,同时让 Faces Servlet 处理我的应用程序中的任何其他 URL。
并拥有:
我的问题是我不知道如何实现Show A.xhtml。我基本上想向客户端打印我的 xhtml 页面。
我还考虑过使用响应 PrintWriter 来解决最后一个问题。
但是,这并不能解决我的问题,因为我不知道如何打印 xhtml 文件,同时还要评估其中包含的表达式语言。
结论
非常感谢任何帮助。即使这意味着改变我提议的结构中的某些内容。自然,如果 servlet 的创建不是我的问题的正确解决方案,我将离开那个轨道。
我只对用户将体验到的结果感兴趣。
提前致谢
ajax - 如何避免 FacesContext 在单独的 Servlet 中为空 - JSF
我正在尝试使我的 Web 应用程序国际化,因此我正在使用 ResourceBundle 并使用以下方法动态更改语言环境:
起初效果很好。但我正在尝试使用 AJAX 调用来更新页面,并且程序使用第三方 servlet 来处理 AJAX 调用。所以现在当我的 bean 被调用时,它不断得到一个空异常(因为我不在 FacesServlet 中,我在其他一些 servlet 中)。
调用 ajax 的代码看起来像
托管 bean 代码:
有任何想法吗?
jsf - PWC1232:超过嵌套请求调度的最大深度:org.apache.catalina.core.ApplicationDispatcher.doInvoke 中的 20
我将 jsf 2.1 (mojara) 与 glassfish 3.1 一起使用,我的 web .xml 看起来像:
我收到此错误
2015-03-11T21:40:15.054+0530|警告:ApplicationDispatcher [/JSFProject] PWC1231:Servlet Faces Servlet 的 Servlet.service() 抛出异常 javax.servlet.ServletException:PWC1232:超过嵌套请求调度的最大深度:20 org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:772)
jsf-2 - FacesServlet 在 Web 片段中不起作用
我有两个 web 应用程序(web-module1.war 和 web-module2.war),我想使用 web 片段(web-core.jar)来声明常见的 servlet,比如 FacesServlet。
当我在 web.xml 中声明 FacesServlet 时没有问题,但是当我将此声明移动到 web-fragment.xml 时,我收到此错误:
我对其他 servlet/filter 声明没有这个问题!
web-fragment.xml 位于 web-core.jar 的 META-INF 文件夹以及 faces-config.xml 中。
web-core.jar 被声明为 maven 依赖项(我可以在 WEB-INF/lib 中找到它)。
这是 web.xml :
和 web-fragment.xml :
我正在使用Tomcat7
jsf - java.lang.ClassCastException:javax.faces.webapp.FacesServlet 不能转换为 javax.servlet.Servlet - 在 OSGI 中
我在 OSGI 框架中添加了必要的包。我想在 OSGI 中查看带有标签的 JSF 页面。页面正在运行,但标签不起作用。例如我的 index.xhtml 是;
我得到了“测试 JSF1232”,但我没有看到“测试!!!” 并在体内。
我的捆绑包名称是 LastTestWeb 和我的其他捆绑包列表;
我为 jsf 标签导入了一些包。我的清单文件夹是;
和最后一个。这是我的 web.xml ;
为什么它不起作用,我收到此错误:
java.lang.ClassCastException:无法将 javax.faces.webapp.FacesServlet 强制转换为 javax.servlet.Servlet。