EJB Hello World 攻略

EJB Hello World 攻略 by apple@java.10.13.21.88

系统配置windows 2000 pro
        JDK(JRE 1.4.1)+UE
        J2EE1.3+Deploy Tool(J2EESDK自带)

1.程序文件 (Reference of Mastering EJB2.0)

/** 关于每个类/接口的功能请参阅EJB教材:)*/

//
//HelloLocalHome.java
import javax.ejb.*;

public interface HelloLocalHome extends EJBLocalHome
{
    public HelloLocal create() throws CreateException;
}

//
//HelloLocal.java
import javax.ejb.*;

public interface HelloLocal extends EJBLocalObject
{
    public String sayHello();
}

/
//HelloHome.java
import javax.ejb.*;
import java.rmi.*;

public interface HelloHome extends EJBHome
{
    public Hello create() throws RemoteException,CreateException;
}


//Hello.java
import java.rmi.*;
import javax.ejb.*;

public interface Hello extends EJBObject
{
    public String sayHello() throws RemoteException;
}


//HelloBean.java
import javax.ejb.*;

public class HelloBean implements SessionBean
{
    private SessionContext ctx;

    public void ejbCreate()
    {
        System.out.println("ejbCreate()");
    }

    public void ejbRemove()
    {
        System.out.println("ejbRemove()");
    }

    public void ejbActivate()
    {
        System.out.println("ejbActivate()");
    }

    public void ejbPassivate()
    {
        System.out.println("ejbPassivate()");
    }

    public void setSessionContext(SessionContext ctx)
    {
        this.ctx=ctx;
    }

    public String sayHello()
    {
        System.out.println("hello()");
        return "Hello, world~";
    }
}

///
//HelloClient.java

import javax.rmi.*;
import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;
import java.rmi.*;
import javax.ejb.*;

public class HelloClient
{
    public static void main(String args[])
    {
        try
        {
            InitialContext con=new InitialContext();

            Object obj=con.lookup("HelloWorld");

            HelloHome home=(HelloHome)
PortableRemoteObject.narrow(obj,HelloHome.class);
            Hello hello=home.create();
            System.out.println(hello.sayHello());
            hello.remove();
        }
        catch(RemoteException rme)
        {
            System.out.println(rme.toString());
        }
        catch(NamingException ne)
        {
            System.out.println(ne.toString());
            ne.printStackTrace();
        }
        catch(Exception re)
        {
            System.out.println(re.toString());
        }
    }
}

文件写好了之后就可以编译了,只需编译成.class文件就行了:)

2.发布EJB
启动J2EE1.3  启动Deploy Tool(机器不好可能会比较慢,稍等一下)

在Deploy Tool界面下

1)添加Application
File->New->Application...

选择你的EAR文件所要存放的路径,然后键入你的EAR文件的名字
以及输入你的这个Application所要显示的名字,比如我的EAR文件
叫Hello,显示的名字也叫Hello如果没有这个EAR文件则新建文件,
如果有的话则覆盖原有文件。这样你的Application就创建了。

2)添加EJB
File->New->Enterprise Bean...

Next->输入创建的JAR文件的名字,比如我的叫HelloWorld->点击右下的
Eidt按钮->选择编译好了的class文件所在目录,添加HelloLocal.class
HelloLocalHome.class Hello.class HelloHome.class HelloBean.class
->OK->Next->选择Bean的Type为Stateless的Session Bean->Enterprise
Bean选择HelloBean,Local Home Interface选择HelloLocalHome,Local
Interface选择HelloLocal,Remote Home Interface选择HelloHome,
Remote interface选择Hello->Next->Finish.

记得还有很重要一点就是设置HelloWorld的JNDI Name,我设置的是
HelloWorld(同JAR名,你也可以设置别的)

3)添加Application Client

File->New->Application Client...

Next->Edit->添加HelloClient.class方法同上->Next->Next->Next->
现在看看你是不是到了EJB Referenced in Code这一页->Add->Code Name
填写Hello,Type Session,Interface这里选择Remote还是Local影响到后面
的填写,我选择的是Remote->Home interface填写HelloHome->Local/Remote
Interface填写Hello->选择JNDI Name,填写HelloWorld,注意要同上面设置
的JNDI Name相同->Finish.

4)检查
菜单上有一个绿色的对号的按钮,点击,在新弹出的对话框上点OK.注意看
有没有出错信息,如果没有的话,最下面的Details应该显示
Hello: There were no failed tests.那么就可以发布了。点击Close关闭
对话框。

5)发布
菜单上面的Deploy点击一下,把Return Client Jar打钩->Next->检查两个
JNDI Name是否都相同,这里都应该是HelloWorld->Next->Finish.
如果没什么意外应该就可以正确的发布了,如果你的某几个包处于占用
状态,比如用WinZip或者WinRAR打开检查而忘记关掉了那么可能会报错。

3.运行程序
在正确发布完以后,你指定的放置EAR文件的路径下应该有这样两个文件
Hello.ear HelloClient.jar,还有其他一些标记为Temp的临时文件。

在运行之前建议你添加path %J2EE_HOME%/bin :)
命令行方式下到你存放EAR文件的路径下
键入如下命令
set APPCPATH=HelloClient.jar
runclient -client Hello.ear -name HelloClient -textauth
输入用户guest密码guest123(这是J2EE自己设置的,你可以修改配置文件)
就可以看到你的HelloWorld了

E:/Temp/javatest/hello/hello>set APPCPATH=HelloClient.jar

E:/Temp/javatest/hello/hello>runclient -client Hello.ear -name
HelloClient -textauth
Initiating login ...
Username = null
Enter Username:guest
Enter Password:guest123
Binding name:`java:comp/env/HelloWorld`
starting lookup
lookup over
Hello, world~
Unbinding name:`java:comp/env/HelloWorld`
E:/Temp/javatest/hello/hello>

在J2EE的窗口里会出现HelloBean创建和删除的记录

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值