Вопрос по spring, dependency-injection, jsf-2, autowired, managed-bean – Пустой указатель при автоматическом подключении компонента к управляемому компоненту JSF

4

Я разработал почтовый сервис, используя Spring Java mail и Velocity Template, как показано ниже.

Email.java

@Component
public class Email {    

        private JavaMailSender mailSender;      
        private VelocityEngine velocityEngine;  


         @Autowired
        private ApplReviewService applReviewService;

       @Autowired
        private UserService userService;


        public void setUserService(UserService userService ) {
            this.userService=userService;
        }


        public UserService getuserService() {
            return userService;
        }

        @Autowired
        @Required
        public void setMailSender(JavaMailSender mailSender) {
            this.mailSender = mailSender;
        }

        public VelocityEngine getVelocityEngine() {
            return velocityEngine;
        }

        @Autowired
        @Required
        public void setVelocityEngine(VelocityEngine velocityEngine) {
            this.velocityEngine = velocityEngine;
        }

// Способ отправки электронной почты. }

Мой Spring.xml



    
           

   
      
         
            resource.loader=class
            class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
         
      
   


@ManagedBean(name="person")
@SessionScoped
Public class Person{

@Autowired
private Email email ; // getter and setter for this.

}

Я пытаюсь автоматически связать мой класс электронной почты с JSF managedBean, но получаю исключение нулевого указателя. Куда я иду не так.

Isn»t @Autowired? Ziyao Wei
Я изменил это. Спасибо. mdp

Ваш Ответ

1   ответ
7

й JSF-компонент. Измените это на

@ManagedBean(name="person")
@SessionScoped
Public class Person{

@ManagedProperty(value="#{email}")
private Email email ; // getter and setter for this.

}

Смотрите также:

@Объем("запрос") не работает
Вы'Добро пожаловать! Ravi
@Ravi ..... Я попробовал ответ выше, но это 'не работает. Я все еще получаю нулевой указатель. Можете ли вы уточнить мне одну вещь. Я определил компонент E-mail в Spring.xml, который является основной папкой / java / resources / config. Это проблема. Мне нужно определите это в ApplicationContext.xml, который является папкой WEB-INF? mdp
Да, вы должны быть в состоянии к этому также. Ravi
Могут ли сервисы, которые имеют @service, использовать ManagedPropety в ManagedBean? mdp

Похожие вопросы