2016-04-07 3 views
1

Я делаю приложение для весеннего входа. Когда я запускаю приложение на сервере WAS, я получаю некоторые исключения. ОшибкиОшибка создания бина; Вложенное исключение - org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр класса bean

org.springframework.web.servlet.FrameworkServlet initServletBean инициализации контекста не удалось org.springframework.beans.factory.BeanCreationException: Ошибка при создании боб с именем 'xyzAccessDao' определено в ServletContext ресурс [/ WEB-INF/весенне servlet.xml]: Ошибка создания бина; Вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр класса bean [services.ap.in.xyz.dao.impl.XYZAccessManagementDaoImpl]: конструктор сделал исключение; вложенное исключение составляет java.lang.NullPointerException

Контроллер класса

package services.ap.in.xyz.action; 

@Controller 
public class XYZLoginAction { 


    XYZAccessManagementDaoImpl xyzAccessDao; 

    @RequestMapping("/login") 
    public ModelAndView processAction(HttpServletRequest request,HttpServletResponse res) { 

     String loggedInUserId=""; 
     String pwd=""; 
     String NotesId = null; 
     boolean authFlag=false; 


     if (request.getParameter("loginSubmit") != null){ 
     System.out.println(" processAction :: loginSubmit action"); 

     try{ 
      loggedInUserId = (String) request.getParameter("userName"); 
      pwd  = (String) request.getParameter("password"); 

      if(loggedInUserId!=null && !loggedInUserId.equalsIgnoreCase("")&&pwd!=null && !pwd.equalsIgnoreCase("")) 
      { 

       NotesId = xyzAccessDao.getNotesId(loggedInUserId); 
       String message = "HELLO no role for "+NotesId; 
        return new ModelAndView("welcome", "message", message);  
      } 
        else{ 
        return new ModelAndView("errorpage", "message","Sorry, username or password error"); 
        } 

       } 

      } 
     }catch (Exception e) { 
      System.out.println(" processAction :: Exception ::"+e.getMessage()+e.getStackTrace()); 
     } 
       return new ModelAndView("errorpage", "message","Sorry, username or password error"); 
} 

ДАО Интерфейс

package services.ap.in.xyz.dao; 

public interface XYZAccessManagementDao { 
    public String getNotesId(String userId) throws Exception; 
} 

ДАО Impl

package services.ap.in.xyz.dao.impl; 

import services.ap.in.xyz.action.XYZLoginAction; 
import services.ap.in.xyz.dao.XYZAccessManagementDao; 

public class XYZAccessManagementDaoImpl implements XYZAccessManagementDao{ 

    @Override 
    public String getNotesId(String loggedInUserId) throws Exception { 
     System.out.println(" getNotesId() :: Entered." + loggedInUserId); 
     String notesId = ""; 
     try { 
      // get notesID 
      } 
     } catch (Exception e) { 

     } 
     return notesId; 
} 

login.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
     <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
      <title>Login</title> 
     </head> 
     <body> 
      <form action="login.html" method="post"> 
       Name:<input type="text" name="userName"/><br/> 
       Password:<input type="password" name="password"/><br/> 
         <input type="submit" value="login" name="loginSubmit"/> 
      </form> 
     </body> 
    </html> 

весна-servlet.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:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
    <context:component-scan base-package="services.ap.in.gbsgdbcms.action" /> 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/WEB-INF/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 
    <bean id="bcmAccessDao" class="services.ap.in.xyz.dao.impl.XYZAccessManagementDaoImpl" /> 
</beans> 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <display-name>LoginExample</display-name> 
    <servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 
</web-app> 
+1

Просьба представить файл весенне-servlet.xml и убедитесь, что конструктор по умолчанию находится в XYZAccessManagementDaoImpl –

+0

Я добавил конструктор по умолчанию XYZAccessManagementDaoImpl – user3312405

+0

открытый класс BCMAccessManagementDaoImpl реализует BCMAccessManagementDao { \t общественного BCMAccessManagementDaoImpl() { \t \t \t} я добавил конструктор по умолчанию XYZAccessManagementDaoImpl, по-прежнему получать тот же ERRO. Я отправил spring-servlet.xml в вопрос .. – user3312405

ответ

1

Изменить базовый пакет <context:component-scan base-package="services.ap.in.gbsgdbcms.action" /> как <context:component-scan base-package="services.ap.in" />

Вышеуказанное заявление в файле конфигурации приложения весна будет сканировать классы внутри указанного пакета и создать экземпляр beans.

1

Использование @Autowired с "XYZAccessManagementDaoImpl xyzAccessDao" в вас контроллер следующим образом:

@Autowired 
XYZAccessManagementDaoImpl xyzAccessDao; 

И использовать @Repository с DaoImpl определения класса следующим образом:

@Repository 
public class XYZAccessManagementDaoImpl implements XYZAccessManagementDao{ 
Смежные вопросы