簡體   English   中英

在JSF 1.1之后不推薦使用類型API變量解析器。請改用el-resolver

[英]Type API variable-resolver is deprecated after JSF 1.1. Use el-resolver instead

我們最近從WebSphere Portal v6.1升級到v7.0,在此過程中我們現在可以使用JSF 1.2。 在Rad 8中創建一個新的Portlet項目會創建一個帶有以下條目的faces-config.xml

<application>
    <state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
    <variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
</application>

然后抱怨:在JSF 1.1之后不推薦使用類型API變量解析器。 請改用el-resolver。

不幸的是,我無法在el-resolver使用的IBM頁面上找到答案。

編輯:

System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());

=>解析器:com.sun.faces.el.FacesCompositeELResolver@696e696e

在faces-config中添加條目

<el-resolver>com.sun.faces.el.FacesCompositeELResolver</el-resolver>

無論是否刪除變量解析器,都會導致:

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:270)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:164)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:358)
    ... 89 more

與IBM的PMR開放......

IBM對PMR的回應:

問 - 忽視警告可能會產生什么后果?

Ans - 用戶仍然可以使用變量解析器,功能不會受到影響。 [此標簽將保持向后兼容性]

問:為什么生成的faces-config.xml仍然使用棄用的方法?

Ans - 我們使用變量解析器來解析portlet變量,即使使用JSF 1.2也能正常工作

問 - 是否存在或者是否存在針對portlet的el-resolver?

Ans - 將有一個針對portlet的el-resolver。 它將在JSF portlet bridge 2.0中提供,它將作為WAS的更新提供。 它目前正處於規划階段,因此我無法為您提供可以找到的精確版本。

我不想這么說,但如果我們談論的是異步網絡應用程序,那么你就已經死了。

JSF 1.2引入了一個“已知錯誤”(我總是喜歡這個短語)是FaceletsRenderer類,它阻止你異步呈現JSF組件(因為JSF中的所有異步都使用偽造的 FacesContext ;而不是可用於渲染的功能)。 你需要JEE6友好的JSF 2.1 ,否則你需要一個完全不同的解決方案,正如@D1e在他/她的評論中指出的那樣。 祝你的組織好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM