在junit中使用EJBcontainer?

时间:2014-06-06 03:33:17

标签: junit ejb

我是JUNIT的新手,并尝试通过一些项目学习(https://github.com/apache/tomee/blob/trunk/examples/rest-example/src/test/java/org/superbiz/rest/dao/UserServiceTest.java 我无法弄清楚在哪种情况下我们使用ejb容器,它的用途是什么以及这些属性是什么。

 @BeforeClass
        public static void start() throws IOException {
            final File webApp = Archive.archive().copyTo("WEB-INF/classes", jarLocation(UserDAO.class)).asDir();
            final Properties p = new Properties();
            p.setProperty(EJBContainer.APP_NAME, "rest-example");
            p.setProperty(EJBContainer.PROVIDER, "tomee-embedded"); // need web feature
            p.setProperty(EJBContainer.MODULES, webApp.getAbsolutePath());
            p.setProperty(EmbeddedTomEEContainer.TOMEE_EJBCONTAINER_HTTP_PORT, "-1"); // random port
            container = EJBContainer.createEJBContainer(p);
        }

1 个答案:

答案 0 :(得分:1)

EJBContainer是一种运行容器的方法。 TomEE有3种口味: * openejb:完全嵌入(JavaSE之类) * tomee-embedded:使用EJBContainer.MODULES部署指向战争路径的战争 * tomee-remote:与tomee-embedded相同,但在远程JVM中

属性是容器的配置。便携式(EJBContainer)定义模块(应用程序路径,如果没有指定使用类路径为openejb案例找到它),提供者(使用哪个实现)和app_name(ejb模块名称,我建议你不要依赖它,如果你不#39; t需要它)。您也可以传递不是便携式属性。在OpenEJB的情况下,这可以定义数据源。

另请注意,OpenEJB有一些JUnit运行器和包含此代码的规则(例如http://svn.apache.org/repos/asf/tomee/tomee/trunk/container/openejb-junit/src/test/java/org/apache/openejb/junit/TestResourceEJBContainerRule.java