1 Reply Latest reply on Mar 29, 2007 9:30 AM by tom_goring

    Odd javax.ejb.EJBNoSuchObjectException

    tom_goring

      Hi,

      I've got an EJB3 app working with jboss seam.

      On one of my SFSB I'm getting a javax.ejb.EJBNoSuchObjectException.
      Within a single HTTP request (so no timeout issues) The SFSB is getting created, called but at the end of the request I get the exception. The Remove is not getting called on the bean. There is no other exception occouring that would have removed the SFSB as well.

      Any ideas why this would happen ? I'd understand it if it was a timeout and my remove had been called.


      13:43:22,765 WARN [Contexts] Could not destroy component: employeeCompanyListBean
      javax.ejb.EJBNoSuchObjectException: Could not find Stateful bean: 5c4o05-mir5ct-ezv68x77-1-ezv76mcd-1o
       at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:268)
       at org.jboss.ejb3.stateful.StatefulRemoveInterceptor.removeSession(StatefulRemoveInterceptor.java:127)
       at org.jboss.ejb3.stateful.StatefulRemoveInterceptor.invoke(StatefulRemoveInterceptor.java:87)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
       at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
      


      @Local
      public interface EmployeeCompanyCRUD {
       public void create();
       public void destroy();
       public void postActivate();
       public void prePassivate();
      
       public void initList();
       public void initFilter();
      
       public String editEntity();
       public String updateEntity();
       public String deleteEntity();
       public String newEntity();
       public String cancelEntity();
      
      
      
       public Employee getEditingEmployeeCompany();
       public void setEditingEmployeeCompany(Employee editingEmployee);
       public EmployeeFilter getEmployeeCompanyFilter();
       public void setEmployeeCompanyFilter(EmployeeFilter employeeCompanyFilter);
       public List<Employee> getEmployeeList();
       public void setEmployeeList(List<Employee> employeeList);
      
       public final static String Success = "success";
      }
      


      @Stateful
      @Scope(ScopeType.CONVERSATION)
      @Name("employeeCompanyListBean")
      @CacheConfig(idleTimeoutSeconds=100)
      public class EmployeeCompanyCRUDBean implements EmployeeCompanyCRUD, Serializable {
       private static final long serialVersionUID = 1L;
      ..
       @EJB
       private CompanyManagerLocal companyManager=null;
      
       @EJB
       private EmployeeManagerLocal employeeManager=null;
      ..
       @Create
       public void create() {
       log.info("create "+toString());
       }
      
       @PostActivate
       public void postActivate() {
       log.info("postActivate"+toString());
       }
      
       @PrePassivate
       public void prePassivate() {
       log.info("prePassivate"+toString());
       }
      
      
       @Remove @Destroy
       public void destroy() {
       log.info("destroy");
       }
      
      ..
      }
      
      
      
      13:43:16,796 INFO [EmployeeCompanyCRUDBean] create jnet.fui.bl.accountant.EmployeeCompanyCRUDBean@f8093f
      13:43:16,796 INFO [EmployeeCompanyCRUDBean] initFilter
      13:43:16,796 INFO [EmployeeCompanyCRUDBean] initList
      ..
      13:43:17,687 INFO [UserConversation] destory 7 - 1175172197171 - ConversationContext(5)
      13:43:22,765 INFO [UserComponentManagerBean] destroy
      13:43:22,765 WARN [Contexts] Could not destroy component: employeeCompanyListBean
      javax.ejb.EJBNoSuchObjectException: Could not find Stateful bean: 5c4o05-mir5ct-ezv68x77-1-ezv76mcd-1o