BeanInstantiationException - 构造函数抛出异常;嵌套异常是java.lang.NullPointerException

时间:2011-03-12 07:02:06

标签: spring spring-mvc dependency-injection

我有一个奇怪的问题,就是无法实例化一个注入另一个bean的bean。

PropertiesUtil是有问题的bean。它会在LoginController

中注入sn-servlet.xml类,如下所示
  <bean name="/Login.html" class="org.sn.auth.LoginController">
    <property name="dbUtil" ref="dbUtil"/>
    <property name="propertiesUtil" ref="propertiesUtil"/>
  </bean>

我的PropertiesUtil.java是

public class PropertiesUtil {

    private Properties properties;

    public PropertiesUtil() {
        properties = new Properties();
        try {            
                properties.load(ClassLoader.getSystemResourceAsStream(
                                    "/resources/messages.properties"));
        }
        catch (IOException ioException) {
            ioException.printStackTrace();
        }
    }
}

NullPointerException发生在我尝试使用propertiesload资源的行。我真的很困惑,为什么当我在上一行中明确地将其瞬间显示时它为空。

我也尝试将properties个实例注释为constructor-arg,并property注明sn-servlet.xml,但都是徒劳的。

当那个bean被弹簧注入到其他类时,是不是我不应该在构造函数中做任何操作?

感谢您的任何想法!

1 个答案:

答案 0 :(得分:4)

查看ClassLoader.getResourceAsStream()的javadoc。如果找不到资源,则返回null。因此,当尝试从空NullPointerException读取时,似乎无法找到messages.properties并且Properties.load()方法将抛出InputStream