I am a Java SE developer but I have rich web-background (PHP, Perl/CGI and so on) and now I am starting new project. It will have web interface, spaghetti business logic, relational database as storage and connections to other services. I do it from the scratch.
My colleagues told me to use spring, spring security and struts. I look briefly at Java EE 6 spec and found that it covers almost all aspects of enterprise application. I asked my colleagues why do they need spring and struts, but looks like they use technologies simply because they are familiar with them and not familiar with classic Java EE 6 stack.
So, my question is: what is bad about Java EE 6? Why do I need spring if there are JNDI lookups? It will take a day or two to create fake InitialContext for unit-tests. And that is all: I stand with out of external tools like spring. Why do I need spring-security if there is a security built in Servlets spec? I can map any request to any servlet using web.xml, no struts.xml is needed. I can use servlet-filters instead of struts interceptors. There is RMI, so I do not need spring-remote. And so on..
Why should I bother my self with all that fancy stuff if there is Java EE 6?
I really want to find situation when Java EE 6 is not enough. Do you have any?
Thanks!