为了说明这个东东,我们做一个简单的例子,用户登录.
首先我们在Oracle中创建一张名为login的表,表中有两个字段,loginName,pwd,其中loginName为主键,输入测试数据,我这里输入的是用户名:yang,密码:yang
首先用Jbuilder2005创建一个工程,然后在数据源视图选择已经创建好连接Oracle的数据源(具体创建步骤详见我以前写的文章),并根据刚才的那张表创建一个CMP的EJB,在这里我们不需要改任何代码.然后我们再创建一个SessionBean,名为LoginEnterprise,在给他添加一个find方法.具体代码如下:
package todaytest;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.ejb.FinderException;
public class LoginEnterpriseBean implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public Boolean find(String loginName, String pwd) throws NamingException,
FinderException {
Context ctx=new InitialContext();
LoginHome home= (LoginHome)ctx.lookup("Login");
Login login=home.findByPrimaryKey(loginName);
String myPwd=login.getPwd();
if(myPwd.equals(pwd))
{
return new Boolean(true);
}
else
{
return new Boolean(false);
}
}
}
创建好了以后,我们就可以打成jar包,并布署到Weblogic服务器上了.
然后我们再创建一个Web客户端,服务器采用Tomcat5,JDK采用1.4,这点很重要,如使用1.5及以后版本会报错的.工程创建好以后,要将EJB中的SessionBean的远程接口,Home接口两个类文件复制到此程的classes目录中.并将wlclient.jar文件放置到lib目录中,这个jar文件在Weblogic安装目录下可以找到的.
创建一个测试页面,具体代码如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.ejb.*" %>
<%@ page import="todaytest.*" %>
<%@ page import="java.util.*" %>
<%@ page import="javax.rmi.*" %>
<html>
<head>
<title>
testjsp
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<form method="post" action="testservlet">
<br><br>
<%
javax.naming.Context ctx = null;
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");
ctx = new InitialContext(env);
// ctx = new InitialContext();
todaytest.LoginEnterpriseHome home = null;
Object obj = ctx.lookup("LoginEnterprise");
home=(todaytest.LoginEnterpriseHome)javax.rmi.PortableRemoteObject.narrow(obj,todaytest.LoginEnterpriseHome.class);
todaytest.LoginEnterprise login = null;
login = home.create();
Boolean loginFlag = login.find("yang","yang");
System.out.println (loginFlag.booleanValue());
out.print(loginFlag.booleanValue());
out.print("<br>=====================<br>");
%>
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
现在OK了,马上启动Weblogic服务器,然后再启动Tomcat服务器进行测试吧!