今天学习了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.*"%>
<%@ page import = "com.ejb.*"%>
<%@ 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:新手发帖。。。如有错误请指正。。。