Проблема с внедрением класса Дао с аннотацией @Inject - PullRequest
0 голосов
/ 06 января 2020

Я новичок в Java EE 7, я работаю с Java технологиями CDI, но, к сожалению, у меня проблема с инъекцией CDI. Я пишу Java Класс с Generi c Type, который представляет Дао для выбора и вставки данных в базу данных. Это часть моего кода:

@Named
@Dependent
public class UserDao<U extends User, Q extends UserQueryParam> extends AbstractUniversityEntityDao<U, Q> implements Serializable {

    @Inject
    public UserDao(Class<U> clazz) {

        super(clazz);
    }

Это файл bean, который правильно настроен:

<?xml version="1.0"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
</beans>

Я пишу тест класса JUnit для тестирования моего класса; это часть моего кода:

Logger logger = Logger.getLogger (UserDaoTest.class);

@Inject
private UserDao<User,UserQueryParam> dao;

@Test
    public void findByIdListTest() {
        User user= dao.findByUsernameAndPassword("antonio","antonio");
        assertNotNull(user);
        assertEquals("antonio", user.getUsername());
        assertEquals("antonio", user.getPassword());
    }

К сожалению, когда я запускаю тест, у меня появляется эта ошибка:

Caused by: java.lang.Exception: {
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"university-api.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"university-api.war\".WeldStartService: Failed to start service
    Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type Class<U extends User> with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public it.university.humaninteraction.dao.UserDao(Class<U extends User>)
  at it.university.humaninteraction.dao.UserDao.<init>(UserDao.java:0)

Может ли кто-нибудь помочь мне решить эту проблему?

...