7.在JSP/Servlet中调用EJB
在JSP/Servlet中调用EJB的代码和客户端是一样的,不同的是,调用代码也运行在服务器端,客户端只需要通过浏览器请求就可以获得结果,不必在客户端机器上也安装Java环境,这就是所谓的瘦客户端。
我们先编写一个JSP页面,命名为hello.jsp:
<%@ page import="javax.naming.*,javax.rmi.*,Hello,HelloHome" %>
<html>
<head>
<title>Test HelloEJB</title>
</head>
<body>
<%
// init context:
Context ctx = new InitialContext();
// lookup:
Object obj = ctx.lookup("ejb/Hello");
// get home object:
HelloHome home = (HelloHome)PortableRemoteObject.narrow(obj, HelloHome.class);
// create ejb object:
Hello hello = home.create();
// invoke business method:
String words = hello.say();
out.println(words);
%>
</body>
</html>
Web应用程序需要按照如下目录结构组织:
其中,WEB-INF/classes存放自己编写的class文件,WEB-INF/lib存放用到的所有jar包,其他的JSP文件可以存放在根目录下的任何位置。
和EJB组件一样,作为Web组件的JSP和Servlet也必须部署到服务器上。启动服务器,再次运行deploytool,并打开上次我们建立的hello application,选择File > New > Web Component,按Next跳过欢迎屏幕,出现下面的对话框:
类似EJB的部署,我们也需要将hello.jsp和helloClient.jar添加到Contents中。点击Edit添加hello.jsp和helloClient.jar这两个文件,请注意目录结构,添加完的目录结构一定是下图所示,否则Web应用程序不会正常工作:
然后Next,选择Web组件的类型,这里我们应当选择JSP:
在下一个对话框中选择hello.jsp:
然后一路Next,当出现WAR Context Root时,输入“/”:
剩下的均保持默认值即可。现在我们的Hello应用程序有两个组件:一个EJB和一个JSP:
浏览器显示出了正确的页面!
待续...
posted on 2005-09-22 19:47
瘦猴 阅读(132)
评论(0) 编辑 收藏