In the early days of Java a strong argument used by the proponents of the technology was standards compliance. Later on the community realized that the standardized technologies were not enough to meet common project requirements or the way they worked was not the most elegant.
That’s why frameworks like Struts or Spring appeared. Nowadays standards seem to be a kind of unneccessary luxury.
But they are not! Java standards allow to avoid the vendor lock-in that people were always complaining about especially in terms of Microsoft technologies. But in the context of open source this seems to be forgotten. A lot of developers a willing to use every cool non standardized open source framework that appears never asking whether it’s standard compliant or not. Examples are Struts, Spring, Beehive, etc.
I think as long as no standardized technology is available which meets certain requirements it’s perfectly fine to use non standardized technology. At least if it has a sound background for instance by a large vendor or large independent developer community.
I know there are other factors like existing codebase which might influence a technology decision.
But if one has to choose between standardized and non standardized software the choice should be clear.
What is your choice?
EJB3 or Spring?
Classic J2EE or Beehive?
JSF or Struts?