然而,ejb规范相对比较复杂,编写ejb需要编写ejb的home接口,remote接口和ejb实现类。ejb规范对这些接口和类进行了许多约定,手工编写十分不方便且容易出错。这里,我向大家推荐一个工具,ejbframe。ejbframe是minij2ee提供的一个生成ejb组件框架源程序的工具,通过gui界面操作就能自动生成正确的ejb home接口,ejb remote接口和ejb实现类的框架源程序,并且还可以生成访问数据库,访问url资源,收发邮件的代码。你只要对生成的代码进行填充,加入你的业务逻辑就可以方便的完成对ejb组件的编写。
在介绍如何使用ejbframe之前,我们先简单回顾一下ejb的基础知识。在ejb specification 1.1中,ejb分为stateful session bean,stateless session bean和entity bean三种类型的enterprise bean。对于每一个ejb,home接口定义了创建和查找ejb的方法;remote接口定义了ejb的业务逻辑方法;ejb类需要实现同home接口和remote接口对应的方法,这些方法将被ejb container调用来提供客户对ejb的请求。关于ejb home接口,remote接口和ejb类的编写方法,可以参看minij2ee的用户手册( http://www.minij2ee.com/document/ ),里面有详细的描述。这里,我们要介绍的是如何使用ejbframe来方便的生成ejb的框架代码。
我们以开发一个简单的stateful session bean为例,来演示如何使用ejbframe。我们的这个演示ejb只提供一个gethelloworld方法,返回一个“hello world from ejb!”的字符串。目前,ejbframe工具需要在windows上运行( http://www.minij2ee.com/download/ ),支持linux的版本正在开发中。
我们启动ejbframe程序,进入ejbframe的主界面,然后进行如下操作:
1. 指定ejb remote接口的名字:
在ejb information中的remote interface name框中输入ejb remote接口的名字,这里我们的ejb叫hello,输入hello。输入后,ejbframe工具会自动生成ejb home接口的名字为hellohome,ejb类的名字为helloejb,ejb异常类的名字为helloexception,ejb部署的jndi名字(ejb-jar.xml中
2. 选择ejb的类型:
在ejb information中的ejb type中选择session,因为我们这个ejb是session bean。
3. 为remote接口添加方法:
如上所述,我们的ejb提供一个gethelloworld方法。按remote interface methods中的add按钮,弹出add method对话框。在add method对话框中,return type选string,method name中输入gethelloworld,按ok。add method对话框中addon code区域用来选择给这个方法生成的附加代码,选中database将生成数据库访问代码,选中pop3将生成收取email的代码,选中smtp将生成发送邮件的代码,选中url将生成访问url资源的代码。由于我们的这个ejb比较简单,所以不需要生成附加的代码
4. 为home接口添加方法:
我们需要为ejb的home接口添加一个create方法,用来创建ejb对象。按home interface methods中的add按钮,弹出add method对话框。在add method对话框中,method type选create method,method name中输入create,按ok。
5. 生成ejb框架代码
按主界面上的generate按钮,将出现一个dos窗口,显示:
done!
press any key。
这时当前目录下就会生成hello.java,hellohome.java,helloejb.java和helloexception.java。
6. 完成代码
打开helloejb.java,修改public string gethelloworld() throws helloexception方法如下:
| public string gethelloworld() throws helloexception { return "hello world from ejb!"; } |
然后,在目录下运行javac *.java。最后生成了hello.class,hellohome.class,helloejb.class和helloexception.class。这样,一个ejb就完成了。
下面列出一些常见的问题,若按照上面的步骤操作中出现问题可以参考。
按generate按钮后没有出现成功画面
1. 请检查java程序是否载路径中,ejbframe程序调用java程序来执行生成代码的java类
2. 请检查genframecode.class文件是否在ejbframe.exe的同一个目录下。
javac编译代码出错
1. 请检查minij2ee.jar和mail.jar是否在classpath中,这两个文件在minij2ee目录的lib子目录下。
2. 请检查程序代码。
闽公网安备 35060202000074号