2015-03-11 3 views
0

Я новичок в Spring и имею простую проблему. Я написал простой контроллер с простым конструктором, аннотированный, как показано ниже.Невозможно создать экземпляр Spring MVC Controller

@Controller 
public class LoginController 
{ 
    private LoginService loginService; 

    @Inject 
    public LoginController(LoginService loginService) 
    { 
     System.out.println("LoginController constructor - initializing login service"); 
     this.loginService = loginService; 
    } 

Когда я пытаюсь получить доступ к своему веб-приложение в браузере, я получаю следующее сообщение об ошибке: конструктор по умолчанию не найден;

Когда я заменить @Inject аннотацию с @Autowired аннотацию, это работает. Может ли кто-нибудь объяснить, почему? Все, что я читал, говорит о том, что они имеют одинаковое поведение. Я использую Tomcat 6.0.43.

Кроме того, ниже моя весна диспетчера сервлет XML:

<mvc:resources mapping="/resources/**" location="/resources/" />  
<mvc:annotation-driven/>            

<context:component-scan base-package="com.rockwell_collins.webquery"/> 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 
+1

Что такое полное имя 'Inject'? –

+0

Autowired - это версия Spring Inject. – mattm

+0

Возможно, он захочет выполнить JSR-330. Не могли бы вы предоставить нам стек? –

ответ

0

Вы должны отсутствовать в JavaEE Inject API из вашей среды выполнения классов. Spring будет искать только @Inject, если класс найден в пути к классам.

Вы можете получить его от Maven here и добавить его в свой путь пути выполнения (вручную или через зависимости).

+0

Вы были верны. Я попытался добавить javaee-api-6.0.jar в папку WEB-INF \ lib, но это не устранило проблему. Но когда я добавил javax.inject-1.jar, как вы предложили, тогда аннотация Inject работала, и все было в порядке. Большое спасибо. Надеюсь, это тоже поможет другим. – beaglebuddy

Смежные вопросы