Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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 Arquillian over Wildfly部署异常:WELD-001408:未满足的依赖项_Java_Jakarta Ee_Testing_Wildfly_Jboss Arquillian - Fatal编程技术网

Java Arquillian over Wildfly部署异常:WELD-001408:未满足的依赖项

Java Arquillian over Wildfly部署异常:WELD-001408:未满足的依赖项,java,jakarta-ee,testing,wildfly,jboss-arquillian,Java,Jakarta Ee,Testing,Wildfly,Jboss Arquillian,我有一个非常简单的测试: @RunWith(Arquillian.class) public class SimpleTest { @Inject private SingleEntity singleEntity; @Deployment public static WebArchive createDeployment() { return ShrinkWrap.create(WebArchive.class)

我有一个非常简单的测试:

@RunWith(Arquillian.class)
public class SimpleTest
{
    
    @Inject private SingleEntity singleEntity;
    
    @Deployment
    public static WebArchive createDeployment()
    {   
        return ShrinkWrap.create(WebArchive.class)
            .addClass(SingleEntity.class)
            .addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
    }
    
    @Test
    public void categorize()
    {
        assertNotNull(this.singleEntity);
    }
}
我只想注入类型为
SingleEntity
的对象<代码>单一实体是一个单一的POJO:

public class SingleEntity
{
    private String id;
    private String description;
    
    public SingleEntity(String id, String description) {
        super();
        this.id = id;
        this.description = description;
    }

    //getters & setters
}
之后,我执行
梯度测试
。我已配置测试,以便Arquillian在Wildfly嵌入式实例中执行这些测试:

<arquillian xmlns="http://jboss.org/schema/arquillian"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">  
  
    <container qualifier="jboss" default="true">  
        <configuration>  
        <!-- Supported property names: [managementPort, username, managementAddress, bundlePath, managementProtocol,   
                    cleanServerBaseDir, jbossHome, password, modulePath] -->  
            <property name="jbossHome">C:\servers\wildfly-Test-8.2.0.Final</property>
            <property name="modulePath">C:\servers\wildfly-Test-8.2.0.Final\modules\</property>
            <!-- <property name="managementPort">8888</property> -->  
        </configuration>  
    </container>  
</arquillian>  

C:\servers\wildfly-Test-8.2.0.Final
C:\servers\wildfly-Test-8.2.0.Final\modules\
这非常简单,但是,我收到一个异常,告诉我无法解决
SingleEntity

原因:org.jboss.weld.exceptions.DeploymentException:weld-001408:带有限定符@Default的SingleEntity类型的未满足依赖项

在注入点[BackedAnnotatedField]@InjectPrivate com.jeusdi.arquillian.SimpleTest.singleEntity

位于com.jeusdi.arquillian.SimpleTest.singleEntity(SimpleTest.java:0)

有什么想法吗?
感谢所有的

总之,您不想注入实体。JPA基于类名,CDI使用代理而不是具体的类。这将导致注入不同的类

这是唯一的最佳实践。如果继续前进,您可能还会遇到其他错误,但如果一切正常,则不应出现此错误


您的实体没有定义bean的注释。如果您使用的是CDI 1.2(wildfly 8.2提供),并且您的beans.xml没有明确列出
bean discovery mode=all
,那么将不会提取此实体。

感谢您的回答。我认为在我的
WebArchive
中放置
beans.xml
对于在CDI上启用bean解析是足够的。但是,我已经用
@ApplicationScoped
测试了注释我的
单一实体
,它再次转储相同的消息。我不确定这是否是因为您的示例有限,但您的实体是否有默认构造函数?我假设您出于breativity的目的省略了它,但是为了使这个类成为有效的JPA实体和cdibean,它需要一个默认构造函数。您可能会在日志中的某个地方收到有关此的警告。