Jakarta ee WildFly:如何使用嵌入式容器测试EJB?

Jakarta ee WildFly:如何使用嵌入式容器测试EJB?,jakarta-ee,testing,wildfly,ejb-3.1,Jakarta Ee,Testing,Wildfly,Ejb 3.1,我正在做我的第一个JavaEE项目,我想进行一个测试。我搜索并发现,从EJB3.1开始,就有可能使用嵌入式EJB容器来测试业务层。我正在使用WildFly,但还没有找到如何配置嵌入式容器 那么,如何正确配置嵌入式容器并使用WildFly测试EJB3.1+ 谢谢你的帮助 您必须使用jboss本身的框架arquillian 这个框架的作用是:在后台创建jboss实例。所有东西都部署在那里,这样您就可以在“后台”容器上运行ejb或servlet 配置它并不容易,所以我建议您从JBossToolsfor

我正在做我的第一个JavaEE项目,我想进行一个测试。我搜索并发现,从EJB3.1开始,就有可能使用嵌入式EJB容器来测试业务层。我正在使用WildFly,但还没有找到如何配置嵌入式容器

那么,如何正确配置嵌入式容器并使用WildFly测试EJB3.1+


谢谢你的帮助

您必须使用jboss本身的框架arquillian

这个框架的作用是:在后台创建jboss实例。所有东西都部署在那里,这样您就可以在“后台”容器上运行ejb或servlet

配置它并不容易,所以我建议您从JBossToolsforEclipse开始。代码如下所示:

@Deployment
public static Archive<?> createTestArchive() {
     return ShrinkWrap.create(WebArchive.class, "test-demo.war")
            .addAsResource("META-INF/persistence.xml")
            .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
}
@部署
公共静态存档createTestArchive(){
返回ShrinkWrap.create(WebArchive.class,“test demo.war”)
.addAsResource(“META-INF/persistence.xml”)
.addasWebInfoResource(EmptyAsset.INSTANCE,“beans.xml”);
}
我不赞成这种方法,它实际上是一种单独的部署,您需要完全了解WAR和EJB包的结构以及所有其他细节


更好的是,您的EJB、JPA和Servlet bean只是普通java类(POJO)的轻装包装,真正的逻辑就在这些类中。然后您可以使用普通单元测试来测试它们。

您正在寻找Wildfly的集成测试框架吗?或者你是在寻找Stackoverflow问题中讨论的内容吗?嗨@fxnn,这将是第二个选项,我发现许多帖子都有相同的代码,但它似乎有不同的设置,这取决于你使用的AS,在我的例子中是Wildfly。您可以在测试期间使用启动服务器,并在测试完成时关闭服务器。您所说的“嵌入的”EJB容器是什么意思?wildfly maven插件对你有用吗?我一直在使用jboss的类似插件作为我的夜间构建,它工作得非常出色!