开发者

Spring bean creation error

So I've been following the Spring documentation, specifically this part,

http://static.springsource.org/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-collaborators on Dependency Injection, but whenever my code runs, I get an error about bean creation.

Here is portion of my code that I tried to base off the ExampleBean example,

public class TimeFeedHandler implements MessageListener {

    String msgID = null;

    T开发者_开发知识库imeBayeuxService timeBayeuxService;

        public void setTimeBayeuxService(TimeBayeuxService timeBayeuxService) {
            this.timeBayeuxService = timeBayeuxService;
        }

And my Spring XML file looks like this,

<!-- A POJO that implements the JMS message listener -->

<bean id="timeFeedHandler" class="com.example.streaming.time.TimeFeedHandler" >
<property name="timeBayeuxService" ref="timeBayeuxService"> </property>
</bean>

The error I get is,

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'timeFeedHandler' defined in URL....

Any ideas why or what I'm doing wrong?

Edit, here is the TimeBayeuxService bean,

<!-- Time BayeuxServices -->

<bean id="timeBayeuxService" class="com.example.streaming.time.TimeBayeuxService" lazy-init="true">
    <constructor-arg><ref bean="common.bayeux" /></constructor-arg>
    <property name="timeBean" ref="time.time" />
</bean>

Here is more of the error. The full error log from STS is wayyyyy too long. I feel like I'm not referencing the TimeBayeuxService bean properly but logically I can't seem to see what I'm doing wrong.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'timeFeedHandler' defined in URL [file:/Users/nullpoint/applicationContext.xml]: Cannot resolve reference to bean 'timeBayeuxService' while setting bean property 'timeFeedHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'timeBayeuxService' defined in URL [file:/Users/nullpoint/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.example.streaming.time.TimeBayeuxService]: Constructor threw exception; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

Here is a portion of the TimeBayeuxService class

public class TimeBayeuxService {

private Bayeux bayeux;
private static StreamingTimeLogGatherer logGatherer;
String testMsgTS = "This is a test message from the original service";

public TimeBayeuxService(Bayeux bayeux) extends SomeBayeuxService{
    super(bayeux, TimeBayeuxService.class.getName());

    this.bayeux = bayeux;
    final Bayeux fbayeux = bayeux;

    this.logGatherer = logGatherer;
    LogServlet.addLogGatherer(logGatherer);

    startThread(fbayeux, testMsgTS, true);

}


timeFeedHandler has a dependency on timeBayeuxService. It can't initialize timeBayeuxService due to NullPointerException so spring can't inject the bean.

According to the error message the NullPointerException happened in the constructor of com.example.streaming.time.TimeBayeuxService. How are you creating common.bayeux bean? Please paste the constructor code for TimeBayeuxService class. Is it an interface? Then you should put the implementation class in the bean definition.

The possible places for NPE. Without the complete stack trace I have to guess the following lines of code:

  1. It can happen inside the constructor of the super class.
  2. These 2 methods: LogServlet.addLogGatherer(logGatherer); startThread(fbayeux, testMsgTS, true);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜