Мы планируем изменить управляемые компоненты на компоненты CDI. Мы использовали приведенный ниже код для вызова класса Service в управляемом компоненте.
@ManagedProperty("#{userService}")
private UserService userService; and setter method
Для компонента CDI я заменил @ManagedProperty на @inject, как показано ниже, и он вызывает следующее исключение.
@SessionScoped
@Named
public class LoginController implements Serializable {
@Inject
private UserService userService;
}
org.apache.webbeans.exception.WebBeansDeploymentException: Passivation capable beans must satisfy passivation capable dependencies.
UserService - это простой интерфейс с нереализованными методами, а UserServiceImpl реализует интерфейс UserService. Пожалуйста, смотрите ниже:
public interface UserService {
public List<User> getUserList();
}
public class UserServiceImpl implements UserService {
private UserDao userDao;
public List<User> getUserList() {
return userDao.getUserList();
}
}
Пожалуйста, дайте мне знать, как вызывать интерфейс службы в бобах CDI?