一. 前言我们要开发一个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. 编写bean1 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;
public void ejbCreate() {
System.out.println( "ejbCreate called" );
}
@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.aspx http://blog.csdn.net/sunxing007/archive/2010/09/08/5871382.aspx
|