更新问题:
我使用了 JBOSS Develper Studio 8,基于 jre 1.7 的 JBOS server 7.1 我有一个带有 ejb 和 web 项目的 J2EE 项目。在 ejb 项目中我有两个相同的 ejb 3.1 在 web 项目中我只有一个 servlet。此 servlet 在第一个 ejb 中调用简单的测试方法,然后在第二个 ejb 中调用。测试方法中的第一件事是通过此代码对资源会话上下文进行依赖注入
@Resource
private SessionContext context;
第一个 ejb 工作正常,但第二个(以及任何后续)为会话上下文返回 null。这是完整的代码:
FirstServlet.java
@WebServlet("/FirstServlet")
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
FirstEJB firstEJB = new FirstEJB();
SecondEJB secondEJB = new SecondEJB();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(firstEJB.helloFirst());
out.println(secondEJB.helloSecond());
}
}
第一个EJB.java
@Stateless
public class FirstEJB {
@Resource
private SessionContext contextFirst;
public String helloFirst(){
System.err.println(contextFirst.toString());
return "Hello from FirstEJB";
}
}
第二个EJB.java
@Stateless
public class SecondEJB {
@Resource
private SessionContext contextSecond;
public String helloSecond(){
System.err.println(contextSecond.toString());
return "Hello from SecondEJB";
}
}
谁能知道问题出在哪里。