我花了一些时间试图理解Embeddable Enterprise Bean Applications,但仍需要一些澄清。假设我需要Junit
来测试EJB
应用程序。
所以我假设应该发生什么,请帮我弄清楚正确答案:
Junit
是入口点,它将EJB
应用程序部署到服务器?因此,EJB和Jboss是"嵌入式"进入测试。 Junit
和' EJB'应用程序是两个独立的JVM进程,它们以某种方式通过jndi名称或其他东西进行通信(我不使用远程EJB)。EJBContainer
只是一种模拟。编辑:
我找到了example:
您能否对此代码发表评论:
@Test
public void test() throws Exception {
String jbossHomeDir = "E:\\dev_station\\java_station\\Serveurs\\jboss-as-7.1.1.Final";
System.setProperty("jboss.home.dir", jbossHomeDir);
StandaloneServer server = EmbeddedServerFactory.create(new File(
jbossHomeDir), System.getProperties(), System.getenv(),
"org.jboss.logmanager");
server.start();
server.deploy(new File("target/classes"));
Context namingContext = server.getContext();
}
答案 0 :(得分:2)
Java EE 6教程(问题中的第一个链接)说
嵌入式容器,企业bean组件和客户端都使用相同的类路径在同一个虚拟机中执行。
即,JUnit测试(“客户端”),嵌入式容器(由JBoss Wildfly,Glassfish等实现)和Java EE应用程序组件(EJB等)都在同一个JVM实例中运行(同样的过程)。
没有什么是嘲笑的。容器服务(事务,注入等)由实际的Java EE服务器实现提供。
因此,问题中列出的四个正确的替代方案是数字 1 。