一. 前言
我们要开发一个WTC服务ejb,实现大写转小写的功能.
这里,以weblogic10和ejb3.0为例
二. 开发工具
bea workspace studio(or eclipse)
选择bea workspace studio的原因在于,它支持ejb原语,可以自动生成ejb相关的代码与配置文件,省去很多麻烦;
在实践中,可以考虑workspace studio配合eclipse的方式,使用前者生成框架代码与配置文件,然后拷贝到eclipse中,完成代码逻辑。
三.步骤
1. 生成weblogic ejb project
启动bea workspace studio, 创建新的weblogic ejb project: HelloWorldProject
在src目录创建新的package: hello
在hello package中,创建新的weblogic session bean: ToLowerBean
此时,项目的目录结构如下:
其中:
src: ToLowerBean是bean类
.apt_src: 自动生成的Remote与RemoteHome类
META-INF: ejb配置文件
2. 新建一个普通的java project
命名为HelloEJB,
在src目录新建一个package: hello
把前面ejb project中的ToLowerBean.java, ToLowerBeanRemote.java, ToLowerBeanRemoteHome.java拷贝到hello package下
把META-INF目录拷贝到同级目录
添加wlserver_10.0\server\lib(若bea版本不同则目录略有差异)目录下的wlclient.jar, weblogic.jar, api.jar, wls-api.jar到classpath, 这些jar包只是为了让EJB程序编译通过, 在打包ejb的时候不需要它们
3. 编写bean
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class ToLowerBean extends GenericSessionBean implements SessionBean {
private static final long serialVersionUID = 1L;
/* (non-Javadoc)
* @see weblogic.ejb.GenericSessionBean#ejbCreate()
*/
public void ejbCreate() {
// IMPORTANT: Add your code here
System.out.println("ejbCreate called");
}
// IMPORTANT: Add business methods
@RemoteMethod()
public Reply service(TPServiceInformation mydata) throws TPException {
TypedString data;
String lowered;
TypedString return_data;
System.out.println("service tolower called");
data = (TypedString) mydata.getServiceData();
lowered = data.toString().toLowerCase();
return_data = new TypedString(lowered);
mydata.setReplyBuffer(return_data);
return (mydata);
}
增加一个方法service, 参考自weblogic文档
4. 修改ToLowerBeanRemote
增加继承TuxedoService
1
2
3
4
5
6
public interface ToLowerBeanRemote extends EJBObject, TuxedoService {
/**
* @weblogic.ejbgen.RemoteMethod
*/
public weblogic.wtc.jatmi.Reply service(weblogic.wtc.jatmi.TPServiceInformation mydata) throws RemoteException, weblogic.wtc.jatmi.TPException;
}
5. 修改ToLowerBeanRemoteHome
改为继承自TuxedoServiceHome,而不是EJBHome
1
2
3
public interface ToLowerBeanRemoteHome extends TuxedoServiceHome {
public ToLowerBeanRemote create() throws CreateException, RemoteException, javax.ejb.CreateException;
}
6. 修改ejb-jar.xml
修改home和remote,其他不动
1
2
<home>weblogic.wtc.jatmi.TuxedoServiceHome</home>
<remote>weblogic.wtc.jatmi.TuxedoService</remote>
7. 打包
用bea wokspace studioe或者clipse提供的export工具把这个项目导出为jar包, 导出文件可取名为Hello.jar.
到
http://localhost:7001/console部署这个Hello.jar并激活它, 完了之后你会发现容器能够自动识别里面的ejb.
四.工程
完整的工程源码下载:
HelloEJB五. 参考资料
http://blog.csdn.net/longronglin/archive/2010/11/12/6005383.aspxhttp://blog.csdn.net/sunxing007/archive/2010/09/08/5871382.aspx