myeclipse上成功开发Enterprise Application project
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/。最后得到预料之中的结果,成功!
以前用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/。最后得到预料之中的结果,成功!