Tôi hiện đang sử dụng apache openejb làm vùng chứa nhúng cho các bài kiểm tra đơn vị. Mặc dù đây là dự án EJB3/JPA nhưng nó cũng hoạt động tương tự với EJB2. Để bootstrap container trong các thử nghiệm của bạn, bạn chỉ cần có để tạo ra một đối tượng InitialContext mà sau này bạn có thể sử dụng để tra cứu EJB và DataSource:
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");
Sửa: Có một số tài liệu hơn trong phần 'Testing Techniques tại http://openejb.apache.org/3.0/index.html.
Nguồn
2009-09-30 14:30:55
+1 - Đối với hai đề xuất cuối cùng của bạn, tôi chưa từng nghĩ về Cactus trong nhiều năm.:) –
Thực ra, tôi đã không sử dụng Cactus trong nhiều năm :) –
Tôi đã cố gắng thiết lập Cactus để sử dụng, nhưng tôi không thực sự có được nó! Tôi cảm thấy quá khó để thiết lập. Tôi đang sử dụng Eclipse và NetBeans. – Attilah