“If there are enterprise beans in the application, the EJB deployment process can take several minutes. Please do not abandon all hope while the process completes.”
WebSphere deployment message (paraphrased)
Of all the many ills of EJBs, slow deployments are among the most chronic. New products like JRebel attempt to reduce this time impact, but with inconsistent results. And hot-swapping code while debugging often fails for all but the most trivial changes. So if each significant code change requires a long wait for redeployment, it at least better work.
That’s why today’s deployment failures were so annoying. I could see from console logs that RMIC was running and there were no errors, but the EJB stub classes were missing from the resulting JARs. This was a new MyEclipse workspace (Blue edition, version 9.1), but I had never had this problem before. I re-checked my configuration and verified that I had enabled EJBDeploy for my WebSphere 6.1 target server (Properties – MyEclipse – EJB Deploy). Yet in the process of poking around and checking things, I stumbled on the problem. While there, I kicked off a manual run by clicking “Apply and run EJB Deploy” and finally got an error message: it could not create the files because it needed the .ejbDeploy sub-folder under my workspace path. I manually created that folder and it worked.
I don’t know why MyEclipse or ejbdeploy couldn’t just create the folder, nor why it wouldn’t report the error to the console during normal deployments. But since this manual work-around resolved the problem, I’ll know what to do next time it happens.
Problem solved, and back to waiting on deployments again. Thanks… I think.