Problems setting debug=false in components.xml
marcelomagno May 5, 2009 7:49 PMHi,
I am going to deploy an app into production and I need to setup debug=false in components.xml
<core:init debug="false" jndi-pattern="@jndiPattern@"/>
(note: I also set <param-name>facelets.DEVELOPMENT</param-name> to false)
When doing this, I cannot login to the app anymore, bacause seam throws an exeption telling me that
javax.el.PropertyNotFoundException: Target Unreachable, identifier 'authenticator' resolved to null
I tried to get another exception but I had no sucess.
Setting debug to true the app works normaly.
Searching the foruns, some pointed that:
1) In this post http://www.seamframework.org/Community/SettingDebugfalseInComponentsxmlPreventsInitializationOfStartupBeanDuringServerStartup#comment64652
is told that jboss-seam-debug.jar must be in the WEB-INF/lib -> it is
2) In this post http://www.seamframework.org/Community/CouldNotInstantiateAuthenticator talked about jndi-pattern, tried jndiPattern appName/\#{ejbName}/local (appName with the correct value), but no go.
Could anybody help moving on? I am stuck on that.
authenticator code that works with debug=true?
package br.com.ad.app; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Logger; import org.jboss.seam.annotations.Name; import org.jboss.seam.log.Log; import org.jboss.seam.security.Credentials; import org.jboss.seam.security.Identity; import br.com.ad.app.model.SystemUser; import br.com.ad.app.model.SystemUserRoleType; @Name("authenticator") public class Authenticator { @In EntityManager entityManager; @In Credentials credentials; @In Identity identity; @Logger Log log; public boolean authenticate() { try { log.info("Tentativa de autenticacao"); SystemUser user = (SystemUser) entityManager.createQuery( "from SystemUser where login = :username and passwd = :password") .setParameter("username", credentials.getUsername()) .setParameter("password", credentials.getPassword()) .getSingleResult(); if (user.getSystemUserRoleType() != null) { // for (SystemUserRoleType mr : user.getSystemUserRoleType()) SystemUserRoleType mr = user.getSystemUserRoleType(); identity.addRole(mr.getMnemonic()); // } } return true; } catch (NoResultException ex) { return false; } } }
Thanks in advance.
Best Regards,
Marcelo Magno