myeclipse下成功开发Enterprise Application project



以前用myeclipse写过单独的ejb程序,也写过单独的web程序。服务器都是weblogic 10.一直没有把他们整合起来。今天就来把ejb和web项目整合,实现一个真正的基于MVC模式的应用程序。

1.新建一个Enterprise Application project:file-->new-->Enterprise Application project.然后写上工程的名字(我的工程名是qiyeji),选择java ee 5(由于前面有先例,可参考我的另一篇文章《》,用j2ee1.4部署web project到weblogic上会找不到web资源,所以选择java ee 5)。最后就是选择“New web model”和“New ejb model”这两个复选框。

2.出现了三个项目文件:qiyeji,qiyejiEjb和qiyejiWeb。各个项目名代表什么模块相信大家都清楚了,不多说。

3.建立ejb。在qiyejiEjb项目下建立个简单的EJB Session bean。建立的方法和步骤可以参考网上的教程,http://www.blogjava.net/rickhunter/articles/25484.html 给出了个myeclipse+weblogic开发ejb的非常详细的过程。需要注意的是,我们在此只需要建立bean类和所需的接口。不需要编写客户端测试。

4.在weblogic服务器上部署ejb。登录weblogic控制台,选择Deployments--->选择install按钮-->选择ejb(在此是qiyejiEjb),选择Class单选项。然后默认next最后save即可。

5.部署ejb完毕后可以查看ejb所对应的jndi名称。这个名称客户端查找ejb时要用到。

6.编写web客户端。在qiyejiWeb项目下的index.jsp写编写代码访问ejb。(可能要把bean中的接口的包复制到 qiyejiWeb的src下,生成相应的接口。也可能不需要那样做,我的是复制了的而且成功了。)index.jsp代码如下:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ page import="rain.interfaces.*,javax.ejb.*,javax.naming.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">
  
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">  
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
    This is my JSP page. <br>
    <%
    Properties properties=new Properties();
     properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
   properties.setProperty(Context.PROVIDER_URL,"t3://localhost:7001");
 
   Context ctx=null;
   try
   {
    ctx=new InitialContext(properties);
    HelloHome rainhome=(HelloHome)ctx.lookup("ejb/Hello");//在weblogic控制台中查到的ejb的jndi名称。
    Hello hello=rainhome.create();
    //rainhello hello=rainhome.create();
    String s=hello.SayHello();
    %>
    <%=s %>
    <%
  
  
  
   }
   catch(Exception ex)
   {
    ex.printStackTrace();
   }
     %>
</body>
</html>
也可以通过servlet调用ejb(推崇使用),我为了节省时间,直接用jsp调用了。

7.部署qiyejiWeb项目。选择myeclipse工具栏上的部署功能,选择project(这里是qiyejiWeb),然后选择add按钮,添加服务器为weblogic10.最后OK即可。

8.测试。启动weblogic服务器(如果没有启动的话)。在IE地址栏上输入http://localhost:7001/qiyejiWeb/。最后得到预料之中的结果,成功!

猜你喜欢

转载自xzhijun-893.iteye.com/blog/1741078
今日推荐