2014-12-17 2 views
0

Я довольно новичок в весне. У меня есть проект динамического веб-приложения. Внутри у меня есть сервлет, который является запросом на получение. Запрос поставляется с запросом №. На основе no я создам новый объект для соответствующего класса запроса и подаст запрос. Теперь мне нужно интегрироваться с весной. я применил ниже конфигурацию,Как настроить и загрузить весенний контекст в проекте сервлета

web.xml (Чтобы загрузить контекст пружины)

<servlet> 
     <servlet-name>spring-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/docspring.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

В сервлета

package com.receve; 
@Controller 
@WebServlet("/Recever") 
public class Recever extends HttpServlet { 

    @Autowired 
    private ClassOne one; 

protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 

    //request parameters receved and 
    if(req==1){ 
     one.print(); 
    } 
} 

    public ClassOne getOne() { 
     return One; 
    } 

    public void setOne(ClassOne one) { 
     this.one = one; 
    } 

} 

В ClassOne

package com.operations; 
@Component 
public Class ClassOne{ 
    public void print(){ 
    //some statement; 
    } 
} 

В spring.xml

<context:annotation-config /> 
    <context:component-scan base-package="com" /> 

Но во время запуска приложения я получаю NullPointerexception при вызове метода one.print(). Каков правильный способ (конфигурация), чтобы получить это?

Спасибо.

+1

Что вы хотите. сервлет или контроллер. В настоящее время они оба, и у вас есть 2 экземпляра этого класса. Я предлагаю удалить аннотацию '@ WebServler' и' extends Servlet' и сделать ее надлежащим контроллером, используя '@ RequestMapping'. –

ответ

0

Удалить extends HttpServlet, а Autowiring отключен по умолчанию, поэтому режим автопостановки по умолчанию для компонента «нет». Пожалуйста, прочитайте here об автоподготовке.

+0

я не понял – Ramakrishna

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