前段时间,我用 GlassFish 试用了 EJB 3.1 的可嵌入容器 API。
现在我尝试用 JBoss 7.1 做同样的事情,但无法让它工作。我花了一些时间研究这个问题,但只发现其他人有这个问题,没有答案或例子。
我知道 Arquillian,它或多或少地消除了对用于测试 EJB 的可嵌入容器的需求,但仍然对可行的解决方案感兴趣。
因此,这是适用于 GlassFish 的代码:
Map<String, Object> params = new HashMap<String, Object>();
//param is needed due to GlassFish bug http://java.net/jira/browse/GLASSFISH-16285
params.put(EJBContainer.APP_NAME, "MyAppName");
EJBContainer container = EJBContainer.createEJBContainer(params);
MyBean instance = (MyBean) container.getContext().lookup("java:global/MyAppName/classes/MyBean");
instance.doSomething("data");
container.close();