8 Replies Latest reply on Sep 6, 2012 10:53 AM by rodnie_rma

    Exception App Web mode Debug

    rodnie_rma

      Hello I am developing in JBDS (JBoss Developer Studio) and the time to put my application in production <core:init jndi-pattern="@jndiPattern@"/> debug="false" shows the following exception:

       

      2012-09-04 14:41:10,432 SEVERE [facelets.viewhandler] (http-PCDevelopment%2F192.0.0.10-8080-1) Error Rendering View[/login.xhtml]

      javax.faces.FacesException: javax.el.PropertyNotFoundException: /layout/menuSistema.xhtml @7,109 binding="#{variableGlobal.barraMenuHorizontal}": Target Unreachable, identifier 'variableGlobal' resolved to null

                at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:257)

                at org.jboss.seam.jsf.SeamApplication.createComponent(SeamApplication.java:394)

                at com.sun.facelets.tag.jsf.ComponentHandler.createComponent(ComponentHandler.java:224)

       

      The seam is version 2.2.2 and JBoss EAP 5.1 Final

       

      I thank you for your help.

        • 1. Re: Exception App Web mode Debug
          mkouba

          Hi Rodnie,

          could you provide more info?

           

          I suppose vairableGlobal is the name of a session bean Seam component. And the stack trace shows up this component is not available for EL resolution. So I would inspect the production archive and check components.properties/components.xml files and see what values JBDS used to replace @jndiPattern@. For JBossAS5/EAP5 is should be earName/#{ejbName}/local.

           

          Also check Seam documentation:

          http://docs.jboss.org/seam/2.2.2.Final/reference/en-US/html/configuration.html#config.integration.ejb.container

          • 2. Re: Exception App Web mode Debug
            rodnie_rma

            Hi Martin,

            Thanks for the answer but I think it is not that, the problem occurs when components are in debug <core:init debug="false" jndi-pattern="@jndiPattern@"/>

            Attached the info you request.

             

            components.properties:

            #

            #Fri Aug 05 10:48:54 BOT 2011

            jndiPattern=\#{ejbName}/local

            embeddedEjb=false

             

            components.xml

            <?xml version="1.0" encoding="UTF-8"?>

            <components xmlns="http://jboss.com/products/seam/components"

            xmlns:core="http://jboss.com/products/seam/core"

            xmlns:mail="http://jboss.com/products/seam/mail"

            xmlns:persistence="http://jboss.com/products/seam/persistence"

            xmlns:security="http://jboss.com/products/seam/security"

            xmlns:web="http://jboss.com/products/seam/web"

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd                  http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.2.xsd                  http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.2.xsd                  http://jboss.com/products/seam/bpm http://jboss.com/products/seam/bpm-2.2.xsd                  http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.2.xsd                  http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.2.xsd                  http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.2.xsd                  http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd">

             

            <core:init debug="false" jndi-pattern="@jndiPattern@"/>

             

            <core:manager concurrent-request-timeout="500"

                        conversation-id-parameter="cid" conversation-timeout="120000" parent-conversation-id-parameter="pid"/>

             

            <!-- Make sure this URL pattern is the same as that used by the Faces Servlet -->

             

            <web:hot-deploy-filter url-pattern="*.seam"/>

             

            <persistence:managed-persistence-context auto-create="true"

                        name="entityManager" persistence-unit-jndi-name="java:/sicWeb10EntityManagerFactory"/>

            <!--

               <drools:rule-base name="securityRules">

                  <drools:rule-files><value>/security.drl</value></drools:rule-files>

               </drools:rule-base>

             

             

               <security:rule-based-permission-resolver security-rules="#{securityRules}"/>  -->

             

            <security:identity authenticate-method="#{authenticator.authenticate}" remember-me="true"/>

            <event type="org.jboss.seam.security.notLoggedIn">

              <action execute="#{redirect.captureCurrentView}"/>

            </event>

            <event type="org.jboss.seam.security.loginSuccessful">

              <action execute="#{redirect.returnToCapturedView}"/>

            </event>

             

            <mail:mail-session debug="true" host="192.0.0.9" password="correo123"

              port="25" ssl="false" tls="false" username="rodnie@prueba.com"/>

             

            <web:character-encoding-filter encoding="UTF-8" override-client="true" url-pattern="*.seam"/>

            <!-- For use with jBPM pageflow or process management

             

             

               <bpm:jbpm>

                  <bpm:process-definitions></bpm:process-definitions>

                  <bpm:pageflow-definitions></bpm:pageflow-definitions>

               </bpm:jbpm>

               -->

            </components>

             

             

            Thank you.

            regards

            • 3. Re: Exception App Web mode Debug
              mkouba

              I'm not following. You have debug="false" so the seam debug page is not available. What does it mean "when components are in debug"?? IMHO the JNDI pattern in components.properties is wrong for JBoss AS 5.  If you don't use JBoss Embeddable EJB3 container (e.g. for testing) try to replace @jndiPattern@ in components.xml with youEarName/#{ejbName}/local (skip JBDS). HTH

              • 4. Re: Exception App Web mode Debug
                rodnie_rma

                Tell me something that I'm working with a project War. And defined debug = false to bring to production Web APP

                • 5. Re: Exception App Web mode Debug
                  mkouba

                  I'm sorry. I'm afraid I don't understand your english. If you use WAR you can't use EJBs in EE 5 and thus jndiPattern is pointless.

                  • 6. Re: Exception App Web mode Debug
                    rodnie_rma

                    Summarizing:

                    In JBDS ide (JBoss Developer Studio) generate a Seam Web project type and War Project, this app is ready but I need to disable debug.seam in production. I have heard that in components.xml <core:init the option is disabled debug="false"/> debug.seam

                    • 7. Re: Exception App Web mode Debug
                      mkouba

                      Yep, that's true. debug=false disables debug mode and also the seam debug page. Finally we understand each other

                       

                      Try to check whether the component is not debug-only -> is annotated with @Install(debug=true) -> such components are installed (and available in EL) in debug mode only.

                      • 8. Re: Exception App Web mode Debug
                        rodnie_rma

                        Add the annotation @ Install the component variablesGlobales and still have the same problem. Attached file

                         

                            /**

                             * @name: Rodnie Montaño

                             * Objetivo: Almacenar Imágen del empleado

                             * Fecha: 01/09/2011

                             */

                         

                            /**

                             * @name: Rodnie Montaño

                             * Objetivo: Almacenar Rol del Usuario

                             * Fecha: 27/09/2011

                             */

                           

                            @In EntityManager entityManager = null;

                         

                            @In VariablesGlobales variableGlobal;

                           

                           

                            private static final long serialVersionUID = -8761451274655157579L;

                           

                            private String nombreUsuario;

                            private int agenciaId;

                            private int usuarioId;

                            private int rolId;

                            private String idiomaUsuario;

                            private String emailUsuario;

                            private String rolUsuario;

                            private String paginaInicial;

                            private long funcionarioId;

                            private String nombreAgencia;

                            private String codigoAgencia;

                            private GenCompania empresa;

                            private String ipUsuario;

                           

                            private String existeSession="N";

                           

                            private byte[] foto;

                            private String fotoVacio;

                           

                            private boolean consulta;

                            private boolean alta;

                            private boolean modificacion;

                            private boolean baja;

                           

                            private List<SegRolesAtributos> listaRolesAtributos = new ArrayList<SegRolesAtributos>();

                           

                            private HtmlToolBar barraMenuHorizontal = new HtmlToolBar();

                         

                            private String saludoUsuario;

                           

                            public String getNombreUsuario() {

                                return nombreUsuario;

                            }

                            public void setNombreUsuario(String nombreUsuario) {

                                this.nombreUsuario = nombreUsuario;

                            }

                            public int getAgenciaId() {

                                return agenciaId;

                            }

                            public void setAgenciaId(int agenciaId) {

                                this.agenciaId = agenciaId;

                            }

                            public int getUsuarioId() {

                                return usuarioId;

                            }

                            public void setUsuarioId(int usuarioId) {

                                this.usuarioId = usuarioId;

                            }

                            public int getRolId() {

                                return rolId;

                            }

                            public void setRolId(int rolId) {

                                this.rolId = rolId;

                            }

                            public long getFuncionarioId() {

                                return funcionarioId;

                            }

                            public void setFuncionarioId(long funcionarioId) {

                                this.funcionarioId = funcionarioId;

                            }

                            public String getNombreAgencia() {

                                return nombreAgencia;

                            }

                            public void setNombreAgencia(String nombreAgencia) {

                                this.nombreAgencia = nombreAgencia;

                            }

                            public String getCodigoAgencia() {

                                return codigoAgencia;

                            }

                            public void setCodigoAgencia(String codigoAgencia) {

                                this.codigoAgencia = codigoAgencia;

                            }

                            public void setEmpresa(GenCompania empresa) {

                                this.empresa = empresa;

                            }

                            public GenCompania getEmpresa() {

                                return empresa;

                            }

                            public void setBarraMenuHorizontal(HtmlToolBar barraMenuHorizontal) {

                               

                                this.barraMenuHorizontal = barraMenuHorizontal;

                            }

                           

                            public HtmlToolBar getBarraMenuHorizontal() {

                                /*

                                System.out.print("CODIGO DE USUARIO EN SESSION.."+usuarioId);

                                boolean cargar=false;

                               

                                if("N".equals(existeSession)){

                                    System.out.print("NO CARGAR MENU TIENE ITEMS.."+cargar);

                                    cargar=false;

                                }else{

                                   

                                    System.out.print("SI CARGAR MENU TIENE ITEMS.."+cargar);

                                    cargar=true;

                                   

                                }

                               

                                /*

                                if(usuarioId > 0){

                                    System.out.print("SI CARGAR MENU TIENE ITEMS.."+cargar);

                                    cargar=true;

                                }else{

                                    System.out.print("NO CARGAR MENU TIENE ITEMS.."+cargar);

                                    cargar=false;

                                }

                                */

                               

                               

                                return barraMenuHorizontal;

                         

                            }

                            public void setPaginaInicial(String paginaInicial) {

                                this.paginaInicial = paginaInicial;

                            }

                            public String getPaginaInicial() {

                                return paginaInicial;

                            }

                            public void setIdiomaUsuario(String idiomaUsuario) {

                                this.idiomaUsuario = idiomaUsuario;

                            }

                            public String getIdiomaUsuario() {

                                return idiomaUsuario;

                            }

                            public void setEmailUsuario(String emailUsuario) {

                                this.emailUsuario = emailUsuario;

                            }

                            public String getEmailUsuario() {

                                return emailUsuario;

                            }

                            public void setRolUsuario(String rolUsuario) {

                                this.rolUsuario = rolUsuario;

                            }

                            public String getRolUsuario() {

                                return rolUsuario;

                            }

                            public void setExisteSession(String existeSession) {

                                this.existeSession = existeSession;

                            }

                            public String getExisteSession() {

                                return existeSession;

                            }

                            public void setFoto(byte[] foto) {

                                this.foto = foto;

                            }

                            public byte[] getFoto() {

                                return foto;

                            }

                            public void setFotoVacio(String fotoVacio) {

                                this.fotoVacio = fotoVacio;

                            }

                            public String getFotoVacio() {

                                this.fotoVacio = "/img/usuario.gif";

                                return fotoVacio;

                            }

                         

                            public String getIpUsuario() {

                                return ipUsuario;

                            }

                            public void setIpUsuario(String ipUsuario) {

                                this.ipUsuario = ipUsuario;

                            }

                         

                            public void setConsulta(boolean consulta) {

                                this.consulta = consulta;

                            }

                            public boolean getConsulta() {

                                return consulta;

                            }

                            public void setAlta(boolean alta) {

                                this.alta = alta;

                            }

                            public boolean getAlta() {

                                return alta;

                            }

                            public void setModificacion(boolean modificacion) {

                                this.modificacion = modificacion;

                            }

                            public boolean getModificacion() {

                                return modificacion;

                            }

                            public void setBaja(boolean baja) {

                                this.baja = baja;

                            }

                            public boolean getBaja() {

                                return baja;

                            }

                            public void setListaRolesAtributos(List<SegRolesAtributos> listaRolesAtributos) {

                                this.listaRolesAtributos = listaRolesAtributos;

                            }

                            public List<SegRolesAtributos> getListaRolesAtributos() {

                                return listaRolesAtributos;

                            }

                         

                            public boolean permisoAtributo(String pAtributo)

                            {

                                boolean resultado = false;

                               

                                for (SegRolesAtributos oRolesAtributos : listaRolesAtributos)

                                {

                                    if (oRolesAtributos.getSegAtributosPantalla().getAtributoPantallaId().equals(pAtributo))

                                    {

                                        resultado = true;

                                    }

                                }

                                return resultado;

                            }

                           

                            public void setSaludoUsuario(String saludoUsuario) {

                                this.saludoUsuario = saludoUsuario;

                            }

                            public String getSaludoUsuario() {

                                return saludoUsuario;

                            }

                         

                        }