java - 依赖注入(inject)在 Arquillian 测试中不起作用

标签 java jakarta-ee seam jboss-arquillian

这是测试类: 我尝试注入(inject)一个 Paper 对象,然后执行操作来测试注入(inject)是否失败。

@RunWith(Arquillian.class)
public class ExcelProcessorTest {
    // Not work. Because Paper and ExcelProcessorTest are in different modules?
    @Inject
    private Paper paper;

    @Deployment
    public static JavaArchive createDeployment() {
        JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "test.jar")
                .addClasses(Paper.class)
                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
        System.out.println(jar.toString(true));

        return jar;
    }

    @Test
    public void notNullTest() {
        Assert.assertNotNull(paper); // paper is null here.
    }

}

我一直在做一个名为 ftc 的项目,这是 ftc 的结构:
enter image description here

请注意,ftcftc-* 的父模块。本项目由 Maven 公约组织。

ExcelProcessorTest 类位于 ftc-test 模块中: enter image description here

Paper类位于ftc-ejb模块中:
enter image description here

Paper 类是一个简单的实体 bean:

/**
 * Paper generated by hbm2java
 */
@Entity
@Table(name = "paper")
public class Paper implements java.io.Serializable {

    private Integer id;
    private String title;
    private String author;
    private String journal;
    private String volumn;
    private String pages;
    private String alternateJournal;
    private String issn;
    private String doi;
    private String acccessionNumber;
    private String keywords;
    private String abstract_;
    private Integer timesCited;
    private Integer citedReferenceCount;
    private String citedReferenceName;
    private String website;
    private String pdfPath;
    private String issue;
    private Integer paperIndexId;
    private Integer year; // 论文发表的年份
    private String type; // OVERVIEW, EXCEL, PAPER
    private SourceFile sourceFile;
    private Set<PaperIndex> paperIndexes = new HashSet<PaperIndex>(0);
    private Set<Sentence> sentences = new HashSet<Sentence>(0);

    public Paper() {
    }

谁能告诉我注入(inject)失败的原因?

哦..我现在有事要做。我会在几个小时后回到这里。如果您需要任何详细信息,请在下面发表评论。谢谢。

最佳答案

我想通了。 在Paper类中,我使用了一些其他的类,比如Sentence.classPaperIndex.class,但是我没有在addClasses() 方法。找不到这个引用的类,因此注入(inject)失败。

我是有多傻...

关于java - 依赖注入(inject)在 Arquillian 测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21456080/

相关文章:

java - 安排任务,确保任务一直在执行

java - 等待\n 而不是 EOF C# SslStream

Java 对话框设置模态

java - 图像存储即服务

seam - 创建 Seam 3 项目

java - 如何获得准备好嵌入的 Mac JRE(在 Linux 上)?

java - 哪些版本的相关技术适用于J2EE 1.4、5和6?

jakarta-ee - 是否可以在 OpenLiberty 20.0.0.2-beta 和任何版本的 MicroProfile 中使用 Jakarta ee 9?

java - Struts 2迭代器标签在jsp中不起作用?

javascript - 在 JavaScript 文件中混合 JSF EL