发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

EJB3使用的问题

2009-08-05 12:12
赞助商链接

用NetBeans IDE开发了个EJB3.0 的session bean
在Servlet中进行调用,调用代码是使用 NetBeans IDE的提供的工具自动生成,使用标注@EJB,问题是这个ejb引用不成了该servlet的成员变量,这样岂不是线程不安全的?这在ejb3.0以前的时代绝对不会发生,难道NetBeans 或者是SUN犯了这么个弱智的问题,还是我理解错了,实际测试确实存在线程不安全啊?
代码类似这样:
Servlet

public class ClientServlet extends HttpServlet {
@EJB
private StatelessSessBeanTestCaseRemote statelessSessBeanTestCaseBean;

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String threads=request.getParameter("threads");
int nThreads=1;
out.println("<html>");
out.println("<head>");
out.println("<title>EJB Test Case</title>");
out.println("</head>");
out.println("<body>");

try {
statelessSessBeanTestCaseBean.sayHello();

out.println("invoke ejb successed.");
}catch(Exception e){
out.println("invoke ejb failed.");
e.printStackTrace();
}finally {
out.println("</body>");
out.println("</html>");
out.close();
}
}

2009-08-05 18:14

SUN范弱智的事情不在少数。

它只管把代码给你输出,哪管你代码的质量,这就是典型的科学家和工程师的区别,SUN就只是一个科学家。

2009-08-11 17:32

statelessSessBeanTestCaseBean , 是个无状态会话bean把,看名称,
因此,就这个具体问题的话,不会有线程不安全的问题。
当然,如果是个stateful session bean,那肯定是线程不安全。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com