J2EE is the best techs to use to develop a 3-tier/n-tier applications where we want to separate the entire Bussiness Logic and for constarints like Database Independency, Platform independency. But how can these J2EE Applications be customized and maintained. I think it would be a night mare to code / repair the EJBs, develop new EJBs change all the JSPs, modify Servlets for simple things. Then how can one justify J2EE is the best technology to develop enterprise solutions?

Can any one submit an article on the ease of customization and maintainability of a J2EE application. We are into desiging a software solution for a company, we want to use the solution for few other companies, how far it is easy to customize it for other companies and how easily can it be maintained. Please explain me how these things are easy with J2EE Applications and where we have to address these things. Please be in detail so that it can be used as a tutorial for others like me.