NotContextException when looking up Autenticator
niharika Jun 7, 2012 4:04 PMHi,
I'm migrating from Jboss 4.2.2 to 7.1.1. I'm using Seam 2, jsf facelets 1.1.11 and richfaces 3.2.2. The server starts up without any errors. It displays JNDI bindings for AutenticatorAction. AuthenticatorAction has authenticate method which authenticates the user. When it tries to authenticate, I get a NotContextException.
Here are the details.
14:47:28,692 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-5) JNDI bindings for session bean named AuthenticatorAction in deployment unit subdeployment "emsi.jar" of deployment "emsi.ear" are as follows:
java:global/emsi/emsi.jar/AuthenticatorAction!org.partners.betr.emsi.seam.Authenticator
java:app/emsi.jar/AuthenticatorAction!org.partners.betr.emsi.seam.Authenticator
java:module/AuthenticatorAction!org.partners.betr.emsi.seam.Authenticator
java:global/emsi/emsi.jar/AuthenticatorAction
java:app/emsi.jar/AuthenticatorAction
java:module/AuthenticatorAction
Authenticator/Action are packaged inside emsi.jar
Authenticator.java
package org.partners.betr.emsi.seam;
import javax.ejb.Local;
@Local
public interface Authenticator
{
boolean authenticate();
}
AuthenticatorAction.java
package org.partners.betr.emsi.seam;
@Stateless
@Name("authenticator")
public class AuthenticatorAction implements Authenticator {
@Out(required=false, scope = SESSION)
private User user;
private static final Log sLog = LogFactory.getLog(AuthenticatorAction.class);
@EJB
private UserManagement mUserManagement;
public boolean authenticate() {
String lUsername = Identity.instance().getCredentials().getUsername();
String lPassword = Identity.instance().getCredentials().getPassword();
User lUser = mUserManagement.validateUser(lUsername, lPassword);
if (lUser != null && lUser instanceof Admin) {
user = lUser;
return true;
}
else
return false;
}
Stacktrace:
15:19:11,700 ERROR [org.jboss.seam.security.jaas.SeamLoginModule] (http-localhost-127.0.0.1-8080-5) Error invoking login method: org.jboss.seam.InstantiationException: Could not instantiate S
at org.jboss.seam.Component.newInstance(Component.java:2041) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.Component.getInstance(Component.java:1923) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.Component.getInstance(Component.java:1890) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53) [jboss-seam.jar:2.1.0.BETA1]
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) [jsf-impl-2.1.7-jbossorg-2.jar:]
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.parser.AstValue.getTarget(AstValue.java:34) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.parser.AstValue.invoke(AstValue.java:95) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.seam.core.Expressions$2.invoke(Expressions.java:174) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.security.jaas.SeamLoginModule.login(SeamLoginModule.java:109) [jboss-seam.jar:2.1.0.BETA1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_19]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_19]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_19]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_19]
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) [rt.jar:1.6.0_19]
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) [rt.jar:1.6.0_19]
at javax.security.auth.login.LoginContext$5.run(LoginContext.java:706) [rt.jar:1.6.0_19]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.6.0_19]
at javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703) [rt.jar:1.6.0_19]
at javax.security.auth.login.LoginContext.login(LoginContext.java:575) [rt.jar:1.6.0_19]
at org.jboss.seam.security.Identity.authenticate(Identity.java:317) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.security.Identity.authenticate(Identity.java:306) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.security.Identity.login(Identity.java:235) [jboss-seam.jar:2.1.0.BETA1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_19]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_19]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_19]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_19]
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:329) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:342) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) [jboss-el-1.0_02.CR2.jar:1.0_02.CR2]
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) [jsf-facelets-1.1.11-classpath15B1.jar:1.1.11]
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) [jsf-impl-2.1.7-jbossorg-2.jar:]
at javax.faces.component.UICommand.broadcast(UICommand.java:315) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.7-jbossorg-2.jar:]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.1.0.BETA1]
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507) [richfaces-impl-3.2.2.GA.jar:3.2.2.GA]
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) [jboss-seam.jar:2.1.0.BETA1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_19]
Caused by: javax.naming.NotContextException: emsi/emsi.jar/AuthenticatorAction
at org.jboss.as.naming.util.NamingUtils.notAContextException(NamingUtils.java:140)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:197)
at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:123)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
at javax.naming.InitialContext.lookup(InitialContext.java:392) [rt.jar:1.6.0_19]
at org.jboss.seam.Component.instantiateSessionBean(Component.java:1312) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.Component.instantiate(Component.java:1276) [jboss-seam.jar:2.1.0.BETA1]
at org.jboss.seam.Component.newInstance(Component.java:2019) [jboss-seam.jar:2.1.0.BETA1]
... 82 more
Contents of my ear:
lib
META-INF
emsi.jar
emsi.war
jboss-seam-excel.jar
jboss-seam.jar
components.xml
<core:init jndi-pattern="java:global/emsi/emsi.jar/#{ejbName}/local" debug="false"/>
<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/>
<component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>
<import>org.jboss.seam.excel.exporter</import>
<transaction:ejb-transaction/>
<security:identity authenticate-method="#{authenticator.authenticate}" />
faces-config.xml
<application>
<view-handler>org.ajax4jsf.application.AjaxViewHandler</view-handler>
</application>