This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
Definitely Spring is much much ahead of EJB 3.0 (perhaps EJB 3.1 comes closer to that) in terms of flexibility and development effort goes. Ofcourse EJB 3 is much improved from its earlier versions, but from my experience working with EJB 3, I still find that to run a small application with some session beans, I have to up my server (EJB container...like Weblogic, JBoss AS) and initially I ran into problems like NamingExceptions and much more which I do not remember now. But to the contrary, Spring was much more easy to set up and Tomcat was more than enough to power up my web application which uses Spring middleware and moreover I didn't need an app server to test my middleware components.
well I am new to EJB myself but I read a lot that annotations have made it a million times easier to do what one would have to have done in xml before. Web Services are of course one of the big things in EJB3. Other than that you may wish to explore EJB in action as this book deals with exactly your question.
SCJP 6.0, SCJD (400/400), SCBCD for JEE 5, SCWCD 1.4 I do videos for development at
I am probably the only developer ever to have had an orange sized brain tumor in my brain while learning development!!