ejb3.0一个显著的变化:
原来系统的业务处理类
接口类:




实现类:







现在要把它改成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