[英]The project does not work with servlet 4.0 and jsf 2.3
我在 intellij IDEA 中有一個使用 CDI、JSF、BeanValidation、Servlet-api 的小型 Java EE 項目。 我的服務器是 glassfish 5.0.0,我讀到它實現了 servlet 4.0、cdi 2.0、jsf 2.3 和 bean 驗證 2.0。
我有以下 xml 配置:
1.web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--Configurations-->
</web-app>
2.faces-config.xml:
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
</faces-config>
3.beans.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_2_0.xsd">
</beans>
現在一切都很好,但是當我嘗試將 servlet 3.1 更改為 servlet 4.0、jsf 2.2 到 jsf 2.3 時,我使用表達式語言的所有 jsf 頁面都不起作用,例如<h:commandButton action='#{bean.doSomething}' />
不要觸發事件
我做錯了什么? 對不起我的英語不好。
更新。
我正在將我的項目移至 maven,重新更新了所有庫並且一切正常,所以我認為問題出在錯誤的配置或庫中。
如果有人感興趣,這個問題很可能是由Mojarra 中的已知錯誤引起的。 在 Glassfish 5 中將默認的 2.3.2 javax.faces.jar 至少更新為 2.3.3 后,JSF 將按預期再次工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.