首先,要定義一個本地接口:
package huizhi.HelloEJBLocal;
import javax.ejb.Local;
@Local
public interface HelloEJBLocal {
public String hello(String name);
}
然後定義這個接口的實現類:
package huizhi.HelloEJBLocal;
import javax.ejb.Local;
import javax.ejb.Stateless;
@Stateless
@Local( { HelloEJBLocal.class })
public class HelloEJBLocalbean implements HelloEJBLocal {
public HelloEJBLocalbean() {
}
public String hello(String name) {
return ("你好," + name);
}
}
@Local 註釋用來指定bean實現類的本地接口。bean實現類可以繼承多個本地接口,每個接口之間用都好分開,如果只有一個本地接口可以省去大括號。
測試的JSP如下:
<%@ page language="java" import="javax.naming.*, huizhi.HelloEJBLocal.*" pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>無狀態會話Bean本地接口</title>
</head>
<body>
<!-- 通過接口調用類 -->
<%
try{
InitialContext ctx = new InitialContext();
HelloEJBLocal hr = (HelloEJBLocal)ctx.lookup("HelloEJBLocalbean/local");
out.print("<br>通過本地接口調用EJB<br>" + hr.hello("李小婉"));
}catch(Exception e){
out.println(e.getMessage());
out.print("<br>本地接口調用失敗!");
}
%>
</body>
</html>
打包,發佈和有狀態會話bean遠程接口一樣,這裏不在贅述。