dada89007 发表于 2013-2-6 11:09:17

使用servlet , jsp, javabean 调用ejb的方法

今天学习了ejb相关内容,小有收获。初步体验下来发现在使用servlet调用ejb时十分方便,而使用jsp,javabean调用ejb时则需要显示的使用JNDI。下来就来分别说说3种具体调用方法把。
 
首先,建立名为converterBean的本地ejb,然后在bean中添加本地方法toLowerCase()。这样ejb就算建好了。
 
接下来进入正题,使用servlet,jsp,javabean调用ejb方法。
 
1. servlet
    servlet比较简单.只需如下操作。
 
    @EJB
    private ConverterLocal converterBean;
 
    这样我们就可以通过converterBean这个对象直接调用ejb的函数了。
    @EJB这个annotation帮助我们减少了不少工作量。因此这个方法十分简单。
    可惜的是@EJB无法在jsp和javabean中使用。
 
2. jsp
    jsp调用ejb需要用到JNDI。操作如下。
 
    <%@ page import = "javax.naming.*"%>  <!--//JNDI名字服务模块-->
    <%@ page import = "com.ejb.*"%>   <!--//EJB的package名-->
    <%@ page import ="java.util.logging.*"%>
    <%
        ConverterLocal converterBean;
       try {
            Context c = new InitialContext();
            converterBean= (ConverterLocal) c.lookup("java:comp/env/ConverterBean");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    %〉
 
   此时,我们同样获得了converterBean这个对象。
 
3. javabean
    javabean与jsp的方法一致。如下。
 
import com.ejb.ConverterLocal;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
 *
 * @author dada89007
 */
public class jspBean {
    private ConverterLocal lookupConverterBean() {
        try {
            Context c = new InitialContext();
            return (ConverterLocal) c.lookup("java:comp/env/ConverterBean");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
}
    通过lookupConverterBean()这个函数得到了ejb的对象。
 
至此我们就可以灵活运用servlet,jsp,javabean调用ejb方法了。
 
ps:新手发帖。。。如有错误请指正。。。
页: [1]
查看完整版本: 使用servlet , jsp, javabean 调用ejb的方法