В настоящее время я вхожу в огромную проблему, и любая помощь будет высоко оценена.Weld: Inject dependency inside Thread J2EE
Прежде всего, в среде J2EE происходит следующее: я не должен сам управлять нитью, но, к сожалению, я не могу это изменить и не использовать EJB. Окружающая среда основана на менеджеру контейнера Tomcat Web Container и Weld CDI.
В моей структуре содержится множество сервисов RESTful, уровня Service layer и DAO, и все они получают друг друга с помощью @Inject, и он отлично работает. Проблема возникает, когда мне нужно, чтобы получить мой слой Service впрыскивается в мой метод Run и я получаю
WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped.
У меня уже есть метод, чтобы вернуть нужный компонент с контекстным, так как следующий код описывает:
BeanManager manager = (BeanManager) jndiContext.lookup("java:/comp/BeanManager");
Bean<T> bean = (Bean<T>) manager.getBeans(beanClass).iterator().next();
CreationalContext<?> ctx = manager.createCreationalContext(bean);
return (T) manager.getReference(bean, beanClass, ctx);
Но даже я использую этот метод, я получаю ошибку. Итак, есть ли способ, которым я мог бы вставлять свои бобы в поток, созданный и управляемый мной?
спасибо.
Благодарим вас за ответ. Я должен согласиться, я не думаю, что это стоит усилий, как вы сказали. Я, вероятно, должен найти обходное решение для моей ситуации и удалить использование Thread. – luanlucas