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)

files are deployed in alfabetical ordrer.first files starting with letters , after that starting with numbers. if you make the names of ear , jar ,war appropriate to the alphabetical sequence it should work .