Code Generation
J2EE development requires a large amount of boilerplate code. This is an unfortunate side effect of the flexibility that it offers. There are some ways to reduce this code bulk, and I have found XDoclet to be well-suited to this task. If you choose to use Struts for your presentation layer, you can use XDoclet to generate a lot of those configuration files as well.
Although some consider XDoclet to be as complex as writing the J2EE code by hand, it saves a great deal of time as the project grows. Initially writing two interfaces, two homes, and the bean itself is not a major issue, but after the 50th or 60th, it does get to be a little dull. XDoclet reduces all of this down to a single class. If you use an editor that has the capacity for templates, this code can be further reduced down to a few keystrokes to generate the tags that are required.
XDoclet has an excellent artificial unique key generation tool that is built into each Util class generated for each EJB. If your team decides to use XDoclet to generate their EJB code, I strongly recommend using this primary key generation tool if it is possible. It has a number of advantages over sequential keys—the least of which is avoiding the issue of concurrent inserts.