Tomcat5调用Weblogic8.1布署的EJB

为了说明这个东东,我们做一个简单的例子,用户登录.

首先我们在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服务器进行测试吧!

 

你可能感兴趣的:(tomcat,weblogic,ejb,import,JBuilder,login)