4 Replies Latest reply on Mar 17, 2005 10:16 AM by bill.burke

    Semantics of Remove

    ffray

      Hmm,

      I'm playing around with stateful sessions, but if calling a @Remove annotated method of a bean i cannot lookup a new session bean of the same class.
      What am I doing wrong, or didn't i get it right that calling such a method
      should close the session instance?
      I created an EJB Project and deployed it successfully, then i deployed a web-app for the frontend on the same container.
      I created a Test-Servlet for showing the error:

      int i = -1;
      try {
       InitialContext ctx= new InitialContext();
       SeminarSession seminarSession = null;
      
       for (i = 0; i < 10; ++i) {
       seminarSession = (SeminarSession)
       ctx.lookup(SeminarSession.class.getName());
       // select Seminar with id 1
       seminarSession.select(1);
      
       // quit and remove the session
       seminarSession.quit();
       }
      } catch (Throwable e) {
       log("Error in round " + i);
       throw new ServletException(e);
      }
      


      When executing the console says the following:
      10:08:33,447 INFO [Engine] StandardContext[/MeinwerkWeb]TestAction: Error in round 1
      10:08:33,462 ERROR [Engine] StandardWrapperValve[TestAction]: Servlet.service() for servlet TestAction threw exception
      javax.ejb.EJBException: null; CausedByException is:
       Could not find Stateful bean: 5c4o21p-ig8vv2-e6eqqmp1-1-e6eqseed-8
       at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:178)
       at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:123)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.aspects.tx.TxSupport.invokeInOurTx(TxSupport.java:141)
       at org.jboss.aspects.tx.TxSupport$Required.serverInvoke(TxSupport.java:438)
       at org.jboss.aspects.tx.TxInterceptor.internalInvoke(TxInterceptor.java:112)
       at org.jboss.aspects.tx.TxInterceptor.invoke(TxInterceptor.java:60)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:62)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:140)
       at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:102)
       at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:28)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.ejb3.stateful.StatefulRemoteProxy.invoke(StatefulRemoteProxy.java:57)
       at $Proxy81.select(Unknown Source)
       at TestSession.doPost(TestSession.java:44)
       at TestSession.doGet(TestSession.java:28)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
       at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
       at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
       at java.lang.Thread.run(Thread.java:595)
      java.rmi.NoSuchObjectException: Could not find Stateful bean: 5c4o21p-ig8vv2-e6eqqmp1-1-e6eqseed-8
       at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:178)
       at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:123)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.aspects.tx.TxSupport.invokeInOurTx(TxSupport.java:141)
       at org.jboss.aspects.tx.TxSupport$Required.serverInvoke(TxSupport.java:438)
       at org.jboss.aspects.tx.TxInterceptor.internalInvoke(TxInterceptor.java:112)
       at org.jboss.aspects.tx.TxInterceptor.invoke(TxInterceptor.java:60)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:62)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:140)
       at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:102)
       at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:28)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:66)
       at org.jboss.ejb3.stateful.StatefulRemoteProxy.invoke(StatefulRemoteProxy.java:57)
       at $Proxy81.select(Unknown Source)
       at TestSession.doPost(TestSession.java:44)
       at TestSession.doGet(TestSession.java:28)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
       at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
       at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
       at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
       at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
       at java.lang.Thread.run(Thread.java:595)
      


      Can anybody please help me out!?
      Could it be a config error?
      Im running JBoss 4.0.1 with EJB 3.0 Preview 3.

      Regards

      Florian

        • 1. Re: Semantics of Remove
          ffray

          Hi folks,

          I've looked around a bit and found some posts mentioning problems with serialization of session-beans. I've moved to JBoss 4.0.1 SP 1 and EJB Preview 4 - trapped in the javax.ejb.Entity -> javax.persistence.Entity change - and now it works!

          Greetings

          FF

          • 2. Re: Semantics of Remove
            bill.burke

            This was a bug in Preview 3. Use Preview 4. Anything from stopping you from Preview 4?

            • 3. Re: Semantics of Remove
              ffray

              Hi Bill,

              moving to Preview 4 is somehow uncomfortable since it means to use SP 1 and I'm currently using the normal 4.0.1 release. But I switched to SP1 and EJB3 Preview 4 as I posted before.

              Thanks anyway

              Florian

              PS Do you have any idea of the date for the final release? I got something with June in my head, but this doesn't really have to say anything ;)

              • 4. Re: Semantics of Remove
                bill.burke

                SP1 == Service Pack One. So, this is not a Release Candidate, but a patch release.