This J2EE stuff gets incredibly simple when you know what you're doing. The article search that I just added only took a few hours to code, and it's even implemented correctly. I wrote a simple little Data Access Object (DAO) which builds and executes the query and returns the keys of matching articles. Then I use the EJB's
findByPrimaryKey() method to actually get the full records. Struts made stringing together a new set of pages quite easy as well.