我编写了EJB3业务逻辑并在Glassfish下部署。 我现在要通过同一容器中的客户端测试它,注入@EJB接口。
问题是此界面 null
客户
public class EjbTest {
@EJB
private static RepAlertManager rep;
public static void main(String[] args) throws IOException, SQLException {
try
{
DBConnection.setTypeConnetionLocal(true);
List<Long> result = rep.doSomething("ENTRATE");
for(Long temp:result){
System.out.println(temp);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
本地接口
public interface RepAlertManager {
public List<Long> doSomething(String message) throws SQLException; }
THE STATELESS bean扩展数据源
@Stateless public class RepAlertManagerImpl extends DataSource implements RepAlertManager {
public RepAlertManagerImpl() throws IOException {
super();
}
public List<Long> doSomething(String message) throws SQLException {
// some code
} }
DATA SOURCE bean是构造函数中的无状态bean设置连接,并通过get()方法释放它
答案 0 :(得分:1)
如果您使用的是Java EE 6,那么这可能会有所帮助
Testing an EJB with JUnit
注射时也不要使用static
。 CDI无法注入静态变量。