2015-03-31 2 views
1

У меня был рабочий контроллер, у которого была одна услуга, как показано ниже.с помощью @Controller, @Service и @Inject весной MVC

@Controller 
public class FileController 
{ 
    private FileService fileService;  // service injected by Spring 

    /** 
    * constructor which initializes the file service. 
    * @param fileService  service used to retrieve a list of files 
    */ 
    @Inject 
    public FileController(FileService fileService) 
    { 
     this.fileService = fileService; 
    } 

    ... 
} 

Аналогичным образом, у меня была еще одна услуга, которую я также работал и использовал в другом контроллере.

@Controller 
public class SearchController 
{ 
    private SearchService searchService;  // service injected by Spring 

    /** 
    * constructor which initializes the search service. 
    * @param searchService  service used to search for items 
    */ 
    @Inject 
    public SearchController(SearchService searchService) 
    { 
     this.searchService = searchService; 
    } 

    ... 
} 

Обе службы и контроллеры работали нормально.

Затем, в процессе разработки, оказалось, что FileController также нуждался в службе поиска, поэтому я изменил FileController, как показано ниже.

@Controller 
public class FilesController 
{ 
    // data members 
    private FileService fileService;  // service injected by Spring 
    private SearchService searchService;  // service injected by Spring 

    /** 
    * constructor which initializes the file service. 
    * @param fileService  service used to retrieve a list of files 
    * @param searchService service used to retrieve a list of items. 
    */ 
    @Inject 
    public FilesController(FileService fileService, SearchService searchService) 
    { 
     this.fileService = fileService; 
     this.searchService = searchService; 
    } 
    ... 
} 

Это компилируется нормально и развертывает просто отлично, но когда я доступ к окну, которое использует FileController, она взрывается с ошибкой Spring:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'filesController' defined in file [C:\rw_apps\tomcat\6.0.43-2\webapps\webquery\WEB-INF\classes\com\rockwell_collins\webquery\controller\FilesController.class]: Unsatisfied dependency expressed through constructor argument with index 1 of type [com.rockwell_collins.webquery.service.SearchService]: : Error creating bean with name 'searchService' defined in file [C:\rw_apps\tomcat\6.0.43-2\webapps\webquery\WEB-INF\classes\com\rockwell_collins\webquery\service\SearchService.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchService' defined in file [C:\rw_apps\tomcat\6.0.43-2\webapps\webquery\WEB-INF\classes\com\rockwell_collins\webquery\service\SearchService.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError

весна только в состоянии внедрить одну услугу в контроллер? Я попытался указать «default-autowire» в моем весеннем файле xml и пробовал все возможные значения для него, но ничего не работает.

ответ

0

Как выглядит ваш SearchService? У вас есть статический блок?

ExceptionInInitializerError «сигналы, неожиданное исключение произошло в статическом инициализаторе»

+0

Вы совершенно правы. Это была проблема со статическим блоком в классе службы. Большое вам спасибо за вашу помощь. – beaglebuddy

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