這個bean的開發,就是前面兩個開發的綜合,沒有什麼新東西。代碼如下:
1、定義接口
遠程接口:
package huizhi.HelloEJB3;
import javax.ejb.Remote;
@Remote
public interface HelloEJB3beanRemote {
public String remoteHello(String name);
}
本地接口:
package huizhi.HelloEJB3;
import javax.ejb.Local;
@Local
public interface HelloEJB3beanLocal {
public String localHello(String name);
}
2、完成實現類
package huizhi.HelloEJB3;
import javax.ejb.Stateless;
/**
* Session Bean implementation class HelloEJB3bean
*/
@Stateless
public class HelloEJB3bean implements HelloEJB3beanRemote, HelloEJB3beanLocal {
/**
* Default constructor.
*/
public HelloEJB3bean() {
// TODO Auto-generated constructor stub
}
public String localHello(String name){
return new String("本地接口:你好," + name);
}
public String remoteHello(String name){
return new String("遠程接口:你好," + name);
}
}
3、測試的JSP頁面
<%@ page language="java" import="javax.naming.*, huizhi.HelloEJB3.*" 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>無狀態遠程接口&本地接口調用</title>
</head>
<body>
<%
try{
InitialContext ctx = new InitialContext();
HelloEJB3beanLocal hrL = (HelloEJB3beanLocal)ctx.lookup("HelloEJB3bean/local");
out.println("<br>通過本地接口調用EJB<br>" + hrL.localHello("李小婉"));
HelloEJB3beanRemote hrR = (HelloEJB3beanRemote)ctx.lookup("HelloEJB3bean/remote");
out.println("<br><br>通過遠程接口調用EJB<br>" + hrR.remoteHello("李小婉"));
}catch(Exception e){
out.println("調用失敗!");
}
%>
</body>
</html>
在JBoss打包和發佈,也和遠程接口的會話bean那裏說的一樣。