You can structure your Java EE applications without any further thinking by placing the contents into Java packages with names like: "exceptions", "beans", "interfaces" or whatever else emphasizes the obvious content, but not the actual responsibility. The question to answer is: how often do you actually searching for exceptions or interfaces?In the following screencast, I used the ancient ECB pattern to structure Java EE applications:
My following pet projects: https://github.com/AdamBien/lightfish, https://github.com/AdamBien/e2ftp, http://x-ray.adam-bien.com, as well as, several commercial projects were already built according to the structure described in the screencast with good experiences so far.
[See also an in-depth discussion in the "Real World Java EE Patterns--Rethinking Best Practices" book (Second Iteration, "Green Book"), page 419 in, chapter "Entity Control Boundary (ECB)—The Lean Way"]
NEW: Effective Java EE 7 -- Available For Streaming