【问题标题】:WildFly: How to test EJB using embedded container?WildFly:如何使用嵌入式容器测试 EJB?
【发布时间】:2015-07-22 01:35:24
【问题描述】:

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

那么,如何正确配置嵌入式容器并使用 WildFly 测试 EJB 3.1+?

感谢您的帮助!

【问题讨论】:

  • 您在寻找Wildfly 的集成测试框架Arquillian 吗?或者您是否正在寻找 Stackoverflow 问题中讨论的关于 embedding the EJB Container in Unit Tests 的内容?
  • 嗨@fxnn,这将是第二个选项,我发现许多帖子具有相同的代码,但在我的情况下,根据您使用的AS,它似乎有不同的设置是野蝇。
  • 您可以在测试期间使用wildfly-maven-plugin 启动服务器,并在测试完成时将其关闭。
  • “嵌入式”EJB 容器是什么意思? wildfly-maven-plugin 对您有用吗?我一直在为我的夜间构建使用类似的 jboss 插件,并且效果非常好!

标签: jakarta-ee testing wildfly ejb-3.1


【解决方案1】:

您必须使用来自 jboss 本身的框架 arquillian http://www.mastertheboss.com/jboss-frameworks/arquillian/arquillian-tutorial

这个框架的作用是:在后台创建 jboss 的实例。一切都部署在那里,因此您可以在该“背景”容器上运行您的 ejb 或 servlet。

配置它并不容易,所以我建议你从 Jboss Tools for eclipse 开始。代码如下所示:

@Deployment
public static Archive<?> createTestArchive() {
     return ShrinkWrap.create(WebArchive.class, "test-demo.war")
            .addAsResource("META-INF/persistence.xml")
            .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
}

我不赞成这种方法,它确实是一个单独的部署,您需要完全了解 WAR 和 EJB 包的结构以及所有其他细节。

更好的是,您的 EJB、JPA 和 Servlet bean 只是普通 Java 类 (POJO) 的轻包装器,真正的逻辑驻留在其中。然后你可以使用简单的单元测试来测试它们。

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2022-12-08
    相关资源
    最近更新 更多