gpt4 book ai didi

java - 使用setter方法创建Spring bean - 空指针异常

转载 作者:行者123 更新时间:2023-11-30 07:34:24 26 4
gpt4 key购买 nike

嗨,我正在学习 spring beans,并且我已经尝试过这个简单的 bean。我有一个带有数据成员的类。数据成员使用setter方法初始化。我在 bean 配置 xml 中使用标签设置了数据成员。我收到一个与我试图传递给 setter 的“消息”相关的空指针异常。我不认为 N​​ULL 实际上被传递,因为当我传递字符串文字时我遇到了同样的问题。

这是我的课:

 public class HelloWorld implements DummyInterface {

//private WebAppPackagerPortal WebAppObj;
private String message;

public void setMessage(String message) {
this.message = message;
}

public String getMessage(){
return this.message;
}

@Override
public void printMessage() {
}
}

这是我的 bean xml:

<bean id="HelloWorldBean" class="pkg.HelloWorld">
<property name="message" value="${content.msg}"/>
<!--<property name="message" value="DUMMYMSG"/>-->
</bean>

我遇到如下异常:

> Feb 24, 2016 1:33:50 PM org.apache.catalina.core.StandardContext
> listenerStart SEVERE: Exception sending context initialized event to
> listener instance of class
> org.springframework.web.context.ContextLoaderListener
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'HelloWorldBean' defined in ServletContext
> resource [/WEB-INF/spring-config.xml]: Error setting property values;
> nested exception is
> org.springframework.beans.PropertyBatchUpdateException; nested
> PropertyAccessExceptions (1) are: PropertyAccessException 1:
> org.springframework.beans.MethodInvocationException: Property
> 'message' threw exception; nested exception is
> java.lang.NullPointerException at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1514)
> at

...


Caused by:
> org.springframework.beans.PropertyBatchUpdateException; nested
> PropertyAccessExceptions (1) are: PropertyAccessException 1:
> org.springframework.beans.MethodInvocationException: Property
> 'message' threw exception; nested exception is
> java.lang.NullPointerException at
> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121)
> at
> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1510)
> ... 26 more

最佳答案

您发布的代码没有任何问题。对于 Spring,问题可能并不总是出现在您认为的地方:)。由于您尚未发布实际实例化 bean 或您使用的 spring 版本/jar 的代码,因此我建议您尝试这些步骤。

  1. 删除 <property name="message" value="${content.msg}"/>从 xml 中查看它是否有效。如果您遇到相同的错误,则意味着问题出在其他地方。可能在配置中。
  2. 第二步是尝试在 Web 容器之外运行它。

    ApplicationContext applicationContext = new 
    ClassPathXmlApplicationContext("/spring-config.xml");
    HelloWorld helloWorld = (HelloWorld ) applicationContext.getBean("HelloWorldBean");
  3. 如果有效,则查看 Web 应用程序配置,并将生成的 Web 应用程序中的 jar 与构建环境进行比较。

  4. 如果这不起作用,那么您的设置中可能存在不兼容的 jar。

    org.springframework.beans.PropertyBatchUpdateException; nested...

有时不兼容的 jar 会导致此问题,但并非总是如此。

关于java - 使用setter方法创建Spring bean - 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35613907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com