Мы недавно обновили WebSphere Portal v6.1 до v7.0, и теперь у нас есть JSF 1.2.При создании нового проекта портлета в Rad 8 создается файл face-config.xml со следующей записью
<application>
<state-manager>com.ibm.faces.application.DevelopmentStateManager</state-manager>
<variable-resolver>com.ibm.faces.portlet.PortletVariableResolver</variable-resolver>
</application>
, а затем жалуется: Тип API-переменный-преобразователь устарел после JSF 1.1.Вместо этого используйте el-resolver.
К сожалению, я не смог найти ответ на страницах IBM, какой el-resolver использовать.
Редактировать:
System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());
=> Resolver: com.sun.faces.el.FacesCompositeELResolver@696e696e
Добавление записи вface-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
PMR с открытым IBM ...