先以HelloWorld为例介绍一下EJB,说明出现的问题,寻求解法

YaSir 02-10-31

EJB主要由三部分内容组成:
 远程接口,本地接口,Bean类
1>HellworldRemote远程接口:
package helloworld;
import java.rmi.*;
import javax.ejb.*;
//远程接口列出了EJB供客户机使用的业务逻辑方法。只是规定了客户机与EJB之间的约定
public interface HelloWorldRemote extends EJBObject {
public String getMessage() throws RemoteException;
}
//开发人员使用远程接口向客户机展示业务逻辑方法。
2>HelloWorldHome接口:
package helloworld;
import java.rmi.*;
import javax.ejb.*;
//本地接口是EJB的工厂,客户机可以使用本地接口创建、找出和删除EJB实例。
//同远程接口一样,EJB作者只需要定义本地接口中的方法的语法调用格式。
//接口中只包含一个create()方法,是一个工厂,可以生成对HelloWorldEJB的引用.
public interface HelloWorldHome extends EJBHome {
public HelloWorldRemote create() throws RemoteException, CreateException;
}
3>HelloWorldBean Bean类:
package helloworld;

import java.rmi.*;
import javax.ejb.*;
//Bean类实现业务逻辑方法,通过远程接口展示给客户机。

public class HelloWorldBean implements SessionBean {
private SessionContext sessionContext;
public void ejbCreate() {
//除了ejbCreate()方法之外,其他方法都是从 javax.ejb.SessionBean接口继承来的。
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}

//实现业务逻辑方法
public String getMessage(){
return "Helloworld";
}
}
在客户机能够使用HelloWorld EJB之前,我们必须把它放到WebLogic Server上。同其他任何Java应用一样,首先,我们需要使用Java编译器生成类文件。
这时出现了问题1>
import javax.ejb.*;这个包程序找不到,出现编译错误:
"HelloWorldBean.java": Error #: 704 : cannot access directory javax\ejb at line 4, column 1

下一步是创建XML文档格式的配置描述器。
有两个配置描述器:ejb-jar.xml和webLogic-ejb-jar.xml
ejb-jar.xml告诉weblogic EJB容器,EJB的本地接口、远程接口和Bean类的名字。
webLogic-ejb-jar.xml使EJB作者能够配置WebLogic特定的参数。
这两个文件位于META_INF目录下面
在这一步遇到的问题是:
如何建立HelloWorld档案文件,部署这个程序???

第三步:编写简单的EJB客户机程序:
但是前两个问题不解决,这步做下去,没有意义。

所以,请道友发表看法,解决这两个问题。
欲知后事如何,请听下回分解 :)

iceant
2002-10-31 20:11

考虑一下,是想用全手写,还是用工具写。

全部手写有一个好处,就是对整个系统比较熟。

用工具写也有好处,就是开发速度快,用 JBuilder 写在 Weblogic 上运行的CMP,几分钟就写完了,很有优势。

所以一直觉得一开始学的时候还是全部手写,等会了原理,再用工具,另外,如果有时间,可以研究一下 EJB Container 的实现。个人觉得受益非浅,对EJB细节会更加清楚.

对于你的问题,手写和工具写的答案是不一样的,而且不同的工具配置也不同,不具有可回答性.

YaSir
2002-10-31 20:35

iceant 谢谢你的回答。
我是用手写的。现在我的困难是:
1。不知道javax.ejb.*;这个包上哪儿去找,是JB自带的吗?这是个比较低级的问题,但我就是不知道。请指教。
2。我是参考《J2EE应用与BEA webLogic Server》学习,还没有入门,书上说的与实际的,差距太大的,我差点儿被它误入歧途。你有这方面的资料吗?介绍介绍,不胜感激。

iceant
2002-11-01 09:55

1. javax.ejb.* 的包在 JBuilder 里有
2. Weblogic 的文档很全,从开发到使用到管理都有文档,直接看电子文
档就可以了

banq
2002-11-01 10:39

javax.ejb.*你可下载sun的j2ee包
如果你使用j2EE产品 产品包里有 如jboss中lib就有。