Actualmente estoy usando apache openejb como un contenedor integrado para pruebas unitarias. Aunque se trata de un proyecto EJB3/JPA, debería funcionar igual para EJB2. Para arrancar el recipiente en sus pruebas sólo hay que crear un objeto InitialContext que luego puede utilizar para buscar EJB y DataSources:
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
// a DataSource named "mysql"
props.put("mysql", "new://Resource?type=DataSource");
props.put("mysql.JdbcDriver", "com.mysql.jdbc.Driver");
props.put("mysql.JdbcUrl", "jdbc:mysql://localhost:3306");
props.put("mysql.JtaManaged", "true");
props.put("mysql.DefaultAutoCommit", "false");
props.put("mysql.UserName", "root");
props.put("mysql.Password", "root");
Context context = new InitialContext(props);
LocalInterface local = (LocalInterface)context.lookup(localInterfaceName + "BeanLocal");
DataSource ds = (DataSource)context.lookup("java:openejb/Resource/mysql");
Editar: Hay un poco de más documentación en la sección 'Técnicas de prueba' en http://openejb.apache.org/3.0/index.html.
+1 - Para sus dos últimas sugerencias, no he pensado en Cactus en años.:) –
En realidad, no utilicé Cactus durante años :) –
Intenté configurar Cactus para su uso, ¡pero realmente no lo entiendo! Siento que es muy difícil de configurar. Estoy usando Eclipse y NetBeans. – Attilah