在Jboss下Web Service调用EJB一 (1)
[ 来源:互网络 | 更新日期:2007-09-13 04:22:44 | 浏览次数:17506]
简介:4 2.Eclipse3
一.开发环境:
1.Java SDK1.4
2.Eclipse3.0中文版
3.Jboss3.2应用服务器
4.Windows 2000中文专业版
二.环境变量的设置:
以下是我自己机器的环境变量设置,如果是linux系统,设置有所不同:
ANT_HOME=C:\ant
JAVA_HOME=C:\j2sdk
JBOSS_HOME=C:\jboss
最后在系统变量的path变量中追加C:\jboss\bin;
三.会话Bean的编写:
在EJB中,会话BEAN需要实现一个远程接口和一个本地接口,那我们就先实现这个两个接口:
1.远程接口:
我们实现的是一个人员管理的用例,这个用例包含3个方法,代码如下:
package com.ejb.sessionbean;
/** * Remote interface for PersonManager.
*/public interface PersonManager
extends javax.ejb.EJBObject{
public com.pojo.Person getPersonByName( java.lang.String name )
throws java.rmi.RemoteException;
public void storePerson( com.pojo.Person person )
throws java.rmi.RemoteException;
public void deletePerson( java.lang.String name )
throws java.rmi.RemoteException;}
PersonManager接口实现的是EJB的远程接口EJBObject,包含3个方法,描述如下:
(1)getPersonByName方法:通过人员的姓名返回一个Person对象;
(2)storePerson方法,通过一个Person对象参数,往人员集合中存储一个人员对象;
(3)deletePerson方法,根据一个人员的姓名从人员集合中删除一个人员对象
由于是远程接口,所以每个方法必须抛出RemoteException异常。
2.本地HOME接口的实现:
为了提高EJB的性能,如果是在同一个虚拟机中,EJB可以通过本地接口来调用方法,以提高运行速度。实现代码如下:
/* * Generated by XDoclet - Do not edit!
*/package com.ejb.sessionbean;
/** * Home interface for PersonManager.
*/public interface PersonManagerHome
extends javax.ejb.EJBHome{
public static final String COMP_NAME="java:comp/env/ejb/PersonManager";
public static final String JNDI_NAME="PersonManagerHomeRemote";
public com.ejb.sessionbean.PersonManager create()
throws javax.ejb.CreateException,java.rmi.RemoteException;}
PersonManagerHome接口只有一个方法,create方法,它与会话bean的具体实现类中ejbCeate方法一一对应。
3.具体实现类:
PersonManagerBean是会话BEAN的具体实现类,必须实现SessionBean接口,而且同时实现了在远程接口中定义的相关业务逻辑方法,具体实现代码如下
package com.ejb.sessionbean;import java.rmi.RemoteException;import java.util.*;import javax.ejb.EJBException;import javax.ejb.SessionBean;import javax.ejb.SessionContext;import com.pojo.*;/*** @ejb.bean description = "PersonManagerBean" display-name = * "PersonManagerBean" jndi-name="PersonManagerHomeRemote" * name="PersonManager" type="Stateless" view-type="remote" *
transaction-type="Container" * @jboss-net.web-service urn = "PersonManagerService" expose-all = "true" */publi


您的位置:
