Null Pointer Exception while Autowiring LinkedBlockingQueue
16,730
You are creating an instance of Check
class manually rather than asking Spring to create/return one for you:
Check c=new Check();
c.solradd();
This will never* work since Spring has no knowledge about you created Check
class. Depending on how do you start you Spring context, you must either explicitly ask the application context:
Check check = applicationContext.getBean(Check.class)
or inject the check
bean into some other compoent like controller:
@Autowired
private Check check;
See also:
* AspectJ weaving will do the trick, but this is like using a cannon to kill a fly
Author by
sparkle
Updated on June 05, 2022Comments
-
sparkle almost 2 years
I am getting null pointer exception while trying to add anything in my solrQueue. I checked in debugger and it is because solrQueue is null. But I have autowired it in my application context then why this error?
public class Check { @Autowired public LinkedBlockingQueue<SolrInputDocument> solrQueue; public SolrInputDocument solrDoc; public void solradd(){ solrDoc=new SolrInputDocument(); solrDoc.addField("title", "abc"); solrQueue.add(solrDoc);//solrQueue is null } }
application Context.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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config /> <!--<context:component-scan base-package="com/abc" /> --> <bean id="solrQueue" class="java.util.concurrent.LinkedBlockingQueue" /> <bean id="check" class="com.abc.Check" scope="prototype" /> </beans>