I am not a Java person and have less than a week's experience working with J2EE, maybe my brain is not wired correctly to understand Java but I have significant programming experience in multiple languages and I have never seen such a proliferation of frameworks and abuse of xml in the name of declarative programming. Most of the latest Java based frameworks have a large amount of documentation explaining how they are different from the other frameworks and how using their framework apparently makes it easier for the programmer to concentrate on business logic and forget about the "grunt" work and loose ends. This clearly seems like a bunch of authors writing a lot of code to create a fwmk/api based on an idea which was simply not significantly different from the previous fmwk to stand on it's own merit.
Also why do most new java fmwks/api's state one of their goals as "making programming easier" ? Surely the J2EE programmer is smart enough to know that he should close files he has opened in his program ? Surely the answer to a bad programmer is not to create a brand new framework that closes opened files via code injection and declarative xml programming. If there is a problem with a existing framework or an api - maybe everyone should just try fixing it ?
I definitely don't have enough exposure to understand all the problems of Java or J2EE and the need for so many frameworks so you could definitely say I not qualified to comment on something that I obviously don't understand well enough. In my defense; neither do I have any significant experience in say Python, Lisp or Perl but I can already see that they have got their story right. Maybe after you have spent enough hours hacking stuff at ungodly hours, you just develop a sense of what is right and what is not, and Java and it's framework hell just does not seem right