Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在TestNG和openEJB中使用EJB_Java_Annotations_Ejb_Testng_Openejb - Fatal编程技术网

Java 在TestNG和openEJB中使用EJB

Java 在TestNG和openEJB中使用EJB,java,annotations,ejb,testng,openejb,Java,Annotations,Ejb,Testng,Openejb,我们正在使用AbstractOpenEJBTestNGclass和openEJB加载这些类。 许多类都加载了以下语句: ejbJar.addEnterpriseBean(new StatelessBean(MyService.class)); 但我也在类的顶部看到了@EJB注释。我了解到,要在openEJB容器中加载EJB,我们需要使用上面的语句。但我不确定我们是否也可以使用@EJB注释。那么我们可以选择他们中的任何一个?或每种方法的任何特定用例 谢谢 不确定我是否正确理解了您的担忧,但要使用

我们正在使用
AbstractOpenEJBTestNG
class和openEJB加载这些类。 许多类都加载了以下语句:

ejbJar.addEnterpriseBean(new StatelessBean(MyService.class));
但我也在类的顶部看到了
@EJB
注释。我了解到,要在openEJB容器中加载EJB,我们需要使用上面的语句。但我不确定我们是否也可以使用@EJB注释。那么我们可以选择他们中的任何一个?或每种方法的任何特定用例


谢谢

不确定我是否正确理解了您的担忧,但要使用EJB执行集成测试,您需要两件事:
1.首先,您需要让OpenEJB知道它在即将到来的测试中可以提供的任何EJB。这就是
ejbJar.addEnterpriseBean(新的无状态bean(MyService.class))
零件是为……准备的。
2.其次,直接指定测试使用的所有EJB注入,方式与在普通代码中相同。请记住,如果您在测试中调用的EJB依赖于任何其他EJB,则需要使用
.addEnterpriseBean()
方法指定所有EJB。例如:

public class SomeProcessingServiceIntegrationTest extends AbstractOpenEJBTestNG {

@EJB
SomeProcessingServiceLocal processingService;

@Module
public EjbModule beans() {

    EjbJar ejbJar = new EjbJar("processing");
    OpenejbJar openejbJar = new OpenejbJar();

    ejbJar.addEnterpriseBean(new StatelessBean(SomeProcessingService.class));
    ejbJar.addEnterpriseBean(new StatelessBean(DatabaseLookupService.class));
}
@Test
public void testProcessingService(){
     // Should return true for example
     assertTrue(processingService.process());
}
}

@Stateless
@Local(SomeProcessingServiceLocal.class)
public class SomeProcessingService {

@EJB
DatabaseLookupServiceLocal databaseLookupService;

    public boolean process(){
         return databaseLookupService.existsInDB();
    }
}