I found you don't quiet understand what is cluster,distributed transaction .
cluster can be implented by application server(such as JBOSS, Weblogic..) ,as well as web server( such as tomcat5,resin).generally, it is has no realation to framework such spring,hibernate, struts...
distributed transaction is only used when you need to acess more than two different datasources in a transaction, which means it either be submitted successfully or roll back for all the datasource you accessed.
In your case, there is only one datasource, so no distributed transaction is needed. As for clustering, apache+tomcat4 or apache+jboss is eough. No EJB is required.