这个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那里说的一样。