2012-04-11 3 views
1

Я работаю над своим первым проектом Spring, и я столкнулся с досадной проблемой.Некоторые объекты, установленные @Autowired всегда равны нулю, другие в порядке

У меня есть класс с именем «UsernameService», который выполнен в виде боба в диспетчерском-servlet.xml:

<bean id="usernameService" class="service.UsernameService" scope="session" > 
    <aop:scoped-proxy /> 
</bean> 

и когда этот компонент создается в одном из моих классов (определение фасоли :)

<bean id="testController" class="controller.TestController" /> 

как таковой:

@Autowired 
UsernameService uns; 

это работает абсолютно нормально. Однако, когда я пытаюсь сделать то же самое в другом классе, LogController:

<bean id="logController" class="controller.LogController" /> 

, то он не работает, и я получаю следующее сообщение об ошибке:

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/flexitime] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException

Я сумел (я считаю,) приписывают эту ошибку тому факту, что uns никогда фактически не устанавливается/не создается и остается в NULL внутри LogController.

У меня это было много, и мы нашли множество «решений», однако пока никто из них не работал.

Спасибо! Джеймс

+0

Как это LogController доступ. У вас есть метод с @RequestMapping, который вызывается в ответ на веб-запрос или вы делаете новый LogController где-то в своем коде? – gkamal

+0

Объект не может быть создан 'new' для инъекций для работы. –

+0

@gkamal Доступ к LogController осуществляется с другого контроллера, и он сам является автосохраненным компонентом: '@Autowired (новая строка) LogController ls'. @thorb Я не использую новое ключевое слово для инициализации класса. – ymhr

ответ

0

Добавьте атрибут auto-wire к вашему боба:

<bean id="usernameService" class="service.UsernameService" scope="session" autowire="byName"> 
    <aop:scoped-proxy /> 
</bean> 
+0

Это дает мне ошибку: 'Атрибут 'default-autowire' не разрешен для появления в элементе 'bean'' – ymhr

+0

обновил код, отметьте один раз –

+0

Обновлено, извините, я должен был заметить, что мое само :(К сожалению, Не работай. – ymhr