title: Type API variable-resolver is deprecated after JSF 1.1. Use el-resolver instead
body: <p>We recently upgraded from WebSphere Portal v6.1 to v7.0 and in the process we now have JSF 1.2 available. Creating a new Portlet project in Rad 8 creates a faces-config.xml with the following entry</p>
  
  <pre><code>&lt;application&gt;
      &lt;state-manager&gt;com.ibm.faces.application.DevelopmentStateManager&lt;/state-manager&gt;
      &lt;variable-resolver&gt;com.ibm.faces.portlet.PortletVariableResolver&lt;/variable-resolver&gt;
  &lt;/application&gt;
  </code></pre>
  
  <p>And then complains: Type API variable-resolver is deprecated after JSF 1.1.  Use el-resolver instead.</p>
  
  <p>Unfortunately i could not find an answer on the IBM pages which el-resolver to use.</p>
  
  <p>Edit: </p>
  
  <pre><code>System.out.println("Resolver: " + PortalUtil.getFacesContext().getApplication().getELResolver());
  </code></pre>
  
  <p>=> Resolver: com.sun.faces.el.FacesCompositeELResolver@696e696e</p>
  
  <p>Adding an entry in faces-config</p>
  
  <pre><code>&lt;el-resolver&gt;com.sun.faces.el.FacesCompositeELResolver&lt;/el-resolver&gt;
  </code></pre>
  
  <p>With or without removing the variable-resolver leads to:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>PMR with IBM opened ...</p>