2011年5月29日星期日

SOASuite_039:SOA Suite 11g 开发指南之十八:如何使用EJB Service Adapter


 开发运行环境:JDeveloper 11.1.1.5 + SOA Suite 11.1.1.5。


传统的JavaEE开发人员转到SOA开发时,不太习惯使用Database Adapter来操作数据。对他们而言,这些逻辑已经写在EJB中了,如果能够在SOA应用中像Web应用那样调用EJB组件就好了。
Oracle SOA Suite 11g中恰好提供了这个特性,哈哈,有了这个特性,调用EJB就方便多啦。

这里假设已经成功Deploy了一个EJB,具体步骤请参考《使用JDeveloper 11g 发布EJB3.0》。注意,这里并不需要把EJB按照Web Service发布。
Java客户端核心代码其实就是这句,查找JNDI:
HelloWorldSession helloWorldSession = (HelloWorldSession)context.lookup("SessionEJB-Project1-HelloWorldSession#project1.HelloWorldSession");

重要步骤说明:
1. 打开一个SOA应用,如CreditCardValidation,拖放EJB Service Adapter放到Reference这边。


这里JNDI Name 就是SessionEJB-Project1-HelloWorldSession#project1.HelloWorldSession。
Java Interface 指向的是EJB Remote Interface。

2. 把Meditator连接到EJB Service,在Meditator中做必要的Transformation。

3. 重新发布CreditCardValidation,并在EM上测试。


这里介绍的是EJB Service Adapter用在Reference端的情况,用在Service端也是可以的。

参考文献:
1. http://biemond.blogspot.com/2009/07/using-ejb-service-reference-in-soa.html。

没有评论: