0 Replies Latest reply on Feb 3, 2006 8:18 PM by kalapraveen

    Lazy instantiation/loading of EJB classes

    kalapraveen

      Greetings,

      I have an ear file whcih contains a jar, war and an application.xml file. Some of my web components(servlets) access ejbs. In normal circumstances it works fine. But, while starting the server, if I send a request to a servlet which delegates the invocation to ejb I am getting a class not found error because the ejb classes are yet to be loaded.

      Can anyone tell how to block an incoming requests to a web module till the entire ear and other components inside it load and be ready to take request?

      Does the order of specification in application.xml effecs class loading? Like, if war is specifed aloof of jar, will the AS load the war first?

      Please help me. Following is the trace of the error that I am getting :

      2006-02-02 18:46:35,713 ERROR [org.jboss.ejb.plugins.LogInterceptor] Unexpected Error:
      java.lang.NoClassDefFoundError
      at com.transerainc.cdp.manager.EventsManager.parseXMLFile(EventsManager.java:82)
      at com.transerainc.cdp.ejb.ProcessEventMDB.onMessage(ProcessEventMDB.java:83)
      at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:458)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
      at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:62)
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:282)
      at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)
      at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:90)
      at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
      at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
      at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:372)
      at org.jboss.ejb.Container.invoke(Container.java:723)
      at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:914)
      at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1208)
      at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:276)
      at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:871)
      at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:159)
      at org.jboss.mq.SpySession.run(SpySession.java:347)
      at org.jboss.jms.asf.StdServerSession.run0(StdServerSession.java:200)
      at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)
      at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
      at java.lang.Thread.run(Thread.java:595)


      Thank you,
      Kala.