ejb3.0一个显著的变化:
原来系统的业务处理类
接口类:
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
实现类:
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/717446ca04a6125dc5b6b54e0fa14ab4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
现在要把它改成ejb,只需要在BussinessLogic类加上描述符。
@Stateless
@Local({IBussinessLogic.class})
@LocalBinding(jndiBinding="ejb/BussinessLogic")
@LocalBinding缺省时的jndi:
- 如果应用是部署到EAR文件,JNDI名的格式是:本地接口的stub:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local。 远端接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
- 如果bean被部署到JAR文件,JNDI名是EJB-CLASS-NAME/local and EJB-CLASS-NAME/remote。
EJB client类
public class EJBClient ... {
public static void main(String[] args) ...{
try ...{
InitialContext ctx = new InitialContext();
IBussinessLogic bean = (IBussinessLogic ) ctx.lookup("ejb/BussinessLogic ");
bean.doSomething();
} catch (NamingException e) ...{
e.printStackTrace();
}
}
}
jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost