DemoWebProject 和 DemoEJB Project 部署在同一服务器
方式1:
Configuration:
Right click your web project -> Properties-> select J2EE Module Dependence-> check your EJB project.jar
Coding:
Context ctx = new InitialContext();
Object o = ctx.lookup("ejb/ejbs/MySessionHome");
// Object o = ctx.lookup("java:comp/evn/ejb/ejbs/MySessionHome") 这种方式会报错
MySessionHome hm = (MySessionHome) PortableRemoteObject.narrow(o, MySessionHome.class);
MySession bean = hm.create();
bean.myMethod();
方式2:
Configuration:
点击 web.xml 编辑模式-> 定义Reference-> 添加EJB reference
Codes如下:
Context ctx = new InitialContext();
Object ob = ctx.lookup("java:comp/env/LojEJBAlias");
MySessionHome hm = (MySessionHome) PortableRemoteObject.narrow(ob, MySessionHome.class);
比较方式1 和 方式2, 后者 Web工程在部署时会采用服务器配置的java Context 命名约定, 即 java:comp/env/xxx