Я пытаюсь объединить несколько бобов (я создал упрощенную версию того, что я пытаюсь выполнить), но мне все время говорят, что автоузел bean имеет значение null.Весной автоматическая инъекция не работает для моих аннотированных бобах
Caused by: java.lang.NullPointerException
at bean.HelloWorld.getMessage(HelloWorld.java:15)
TestDAO.java
package dao;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Repository;
@Primary
@Repository("testDAO")
public class TestDAO {
public String getMessage() {
return "Hello World!";
}
}
TestSOA.java
package soa;
import dao.TestDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("testSOA")
public class TestSOA {
@Autowired
private TestDAO testDAO;
public String getMessage() {
return testDAO.getMessage();
}
}
HelloWorld.java
package bean;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import soa.TestSOA;
@ManagedBean(name = "helloWorld")
@SessionScoped
@Controller
public class HelloWorld implements Serializable {
@Autowired
private TestSOA testSOA;
public String getMessage() {
return testSOA.getMessage();
}
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="dao, soa, bean"/>
</beans>
Тогда в index.xhtml
Message:<h:outputText value="#{helloWorld.message}"/>
Я не понимаю, я думал, что я сделал все, что было предположить, чтобы. web.xml объявлен ContextLoaderListener. Я пробовал использовать CDI и другие методы Spring и вручную подключался с помощью applicationContext.xml. Ничего ...
Я предполагаю, что у меня нет основополагающего принципала относительно весны или инъекции. Я использую Java 1.6, Spring 3.1.1 и Tomcat 7.0.34.0
Нет, никакого эффекта, она все еще не инъекционный (или она есть, но это инъекционные нуль?). Спасибо за совет, но все же. – Huffy