2 Replies Latest reply on Oct 16, 2011 6:07 PM by badr elhouari

    facescontext null in jsf mojarra-2.0, jboss 6.0 and jboss 6.1

    Juan Burgos Newbie

      Hello everyone

      happens that by invoking the method FacesContext.getCurrentInstance() returns null

       

      alguna  idea

       

      I'm using

       

      Jboss 6.1.0

      JSF 2

       

      web.xml

       

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="3.0" 
         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/web-app_3_0.xsd">
          <context-param>
              <param-name>javax.faces.PROJECT_STAGE</param-name>
              <param-value>Development</param-value>
          </context-param>
          <context-param>
              <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
              <param-value>server</param-value>
          </context-param>
          <context-param>
              <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
              <param-value>true</param-value>
          </context-param>
          <context-param>
              <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name>
              <param-value>false</param-value>
          </context-param>
          <context-param>
              <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
              <param-value>.xhtml</param-value>
          </context-param>
          <filter>
              <filter-name>Pretty Filter</filter-name>
              <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
          </filter>
          <filter-mapping>
              <filter-name>Pretty Filter</filter-name>
              <url-pattern>/*</url-pattern>
              <dispatcher>FORWARD</dispatcher>
              <dispatcher>REQUEST</dispatcher>
          </filter-mapping>
          <servlet>
              <servlet-name>jcaptcha</servlet-name>
              <servlet-class>com.selsa.arqos.ad.sso.presentacion.servlet.ImageCaptchaServlet</servlet-class>
              <load-on-startup>0</load-on-startup>
          </servlet>
          <servlet-mapping>
              <servlet-name>jcaptcha</servlet-name>
              <url-pattern>/jcaptcha.jpg</url-pattern>
          </servlet-mapping>
          <servlet>
              <servlet-name>Faces Servlet</servlet-name>
              <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
              <load-on-startup>1</load-on-startup>
          </servlet>
          <session-config>
              <session-timeout>
                  30
              </session-timeout>
          </session-config>
          <welcome-file-list>
              <welcome-file>index.html</welcome-file>
              <welcome-file>welcomeICEfaces.jsf</welcome-file>
          </welcome-file-list>
          <error-page>
              <exception-type>javax.faces.application.ViewExpiredException</exception-type>
              <location>/pages/public/viewExpired.xhtml</location>
          </error-page>
      </web-app>
      

       

      faces-config

       

      <faces-config version="2.0"
          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/web-facesconfig_2_0.xsd">
          <application>
              <message-bundle>com.selsa.arqos.gr.propiedades.resources.messagesValidation</message-bundle>
              <locale-config />
              <resource-bundle>
                  <base-name>com.selsa.arqos.gr.propiedades.resources.messages</base-name>
                  <var>message</var>
              </resource-bundle>
              <resource-bundle>
                  <base-name>com.selsa.arqos.gr.propiedades.resources.sso.messages</base-name>
                  <var>message</var>
              </resource-bundle>
          </application>
      </faces-config>
      

       

      Working to my problem I found the following:


      The managed bean the'm extending a class which implements the methods for handling messages,  if I move to managed bean these methods work

       

      @ManagedBean(name="pruebaBean")
      @RequestScoped
      class PruebaBean extends AbstractMessage{
         @PostConstruct
         protected void postConstruct(){
                 addInfo("Hola mundo);
         }
      }
      
      
      

       

       

      public class AbstractMessage {
      
          protected FacesContext getCurrentContext() {
              return FacesContext.getCurrentInstance();
          }
         public void addInfo(String msg) {
              addMessage(msg, FacesMessage.SEVERITY_INFO);
          }
         private void addMessage(String msg, Severity severity) {
              FacesMessage message = new FacesMessage(msg);
              message.setSeverity(severity);
              FacesContext ctx = getCurrentContext();
              ctx.addMessage(null, message);
          }
      }
      

       

      will be a bug or am I doing something wrong